SmsDevice 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
支援行動寬頻 SMS 裝置的作業。
注意
這項功能僅適用于行動電信業者應用程式和 UWP 應用程式,由行動網路操作員、行動寬頻介面卡 IHV 或 OEM 提供特殊許可權存取。 如需詳細資訊,請參閱 行動寬頻。
注意
此類別及其方法支援維護舊版 Windows 中使用的舊版傳統型應用程式。 如果您使用這個類別,則必須在應用程式的資訊清單中指定 Windows.Devices.Sms.LegacySmsApiContract 。 如果您要開發適用于 Windows 的新應用程式,請勿使用此類別。 請改用此命名空間中不需要 Windows.Devices.Sms.LegacySmsApiContract的 API。
public ref class SmsDevice sealed : ISmsDevice
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Devices.Sms.LegacySmsApiContract, 65536)]
/// [Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, Windows.Devices.Sms.LegacySmsApiContract)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SmsDevice final : ISmsDevice
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Devices.Sms.LegacySmsApiContract, 65536)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Devices.Sms.LegacySmsApiContract")]
class SmsDevice final : ISmsDevice
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Devices.Sms.LegacySmsApiContract), 65536)]
[Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, typeof(Windows.Devices.Sms.LegacySmsApiContract))]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class SmsDevice : ISmsDevice
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Devices.Sms.LegacySmsApiContract), 65536)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Devices.Sms.LegacySmsApiContract")]
public sealed class SmsDevice : ISmsDevice
Public NotInheritable Class SmsDevice
Implements ISmsDevice
- 繼承
- 屬性
- 實作
Windows 需求
裝置系列 |
Windows Desktop Extension SDK (已於 10.0.10240.0 引進)
|
API contract |
Windows.Devices.Sms.LegacySmsApiContract (已於 v1.0 引進)
|
應用程式功能 |
cellularMessaging
sms
|
備註
如果使用者撤銷存取權,則使用 Windows.Devices.Sms API 傳送或接收簡訊的應用程式會失敗 ,並E_ACCESS_DENIED 。
如果已將 SMS 裝置的存取權提供給應用程式:
- 呼叫 GetDefaultAsync 或 FromIdAsync 會在第一次執行應用程式時觸發同意提示。
- 如果使用者未在同意提示中授與許可權,或是撤銷許可權, 則 GetDefaultAsync 和 FromIdAsync 非同步方法的錯誤處理常式會接收 E_ACCESS_DENIED 。
- 如果使用者在撤銷 SMS 之後重新啟用對 SMS 的存取權,請再次呼叫 GetDefaultAsync 或 FromIdAsync 以存取 SMS。 例如, E_ACCESS_DENIED 錯誤的錯誤處理常式可能會顯示 UI,指示使用者使用設定常用鍵重新啟用 SMS,然後點選按鈕以重試存取 SMS。 按鈕背後的程式碼應該先呼叫 GetDefaultAsync 或 FromIdAsync ,再進行任何其他呼叫。
- 如果應用程式註冊 SMS 背景事件, (Windows.ApplicationModel.Background.SystemTriggerType.SmsReceived) ,應用程式必須先呼叫 GetDefaultAsync 或 FromIdAsync ,才能存取 SMS 以確保應用程式具有存取權。 從背景工作呼叫 GetDefaultAsync 或 FromIdAsync 將不會觸發同意提示。 如果是第一次執行,或使用者未授與許可權,或撤銷許可權,則會收到 E_ACCESS_DENIED。
由以 C# 或 C++ 撰寫的應用程式呼叫FromIdAsync或GetDefaultAsync的第一個使用SmsDevice物件,應該位於單一線程 Apartment (STA) 執行緒上。 從多執行緒 Apartment 呼叫 (MTA) 執行緒可能會導致未定義的行為。
屬性
AccountPhoneNumber |
傳回與 SMS 裝置相關聯的電話號碼。 電話號碼可用來將連入訊息與帳戶產生關聯,而且可能是外部儲存體機制,例如帳戶收件匣。 |
CellularClass |
傳回 SMS 裝置的行動電話通訊類別。 類別可用來判斷哪些編碼方式適當,或哪些裝置限制生效。 |
DeviceStatus |
傳回 SMS 裝置的狀態,指出裝置是否已就緒。 它也會指出如果裝置尚未就緒,就會存在何種類型的問題。 |
MessageStore |
存取裝置上的訊息存放區。 存放區會保留訊息,直到用戶端可以擷取這些訊息為止。 例如,在某些裝置上,存放區可能會對應到 SMS 訊息的 SIM 儲存體。 |
方法
CalculateLength(SmsTextMessage) |
估計所指定文字訊息的傳輸訊息長度。 此估計值對於想要提供網路上傳送訊息數目的指示,以攜帶完整訊息的文字的用戶端很有用。 |
FromIdAsync(String) |
為接收 SMS 訊息的裝置建立 SmsDevice 的實例。 |
FromNetworkAccountIdAsync(String) |
為指定的行動寬頻網路帳戶識別碼建立 SmsDevice 的實例。 |
GetDefaultAsync() |
建立與預設 SMS 裝置相關聯的 SmsDevice 物件的實例。 因為裝置可能忙碌中,所以作業會以非同步方式執行。 非同步作業物件會立即傳回。 |
GetDeviceSelector() |
擷取可用來列舉 SMS 裝置的類別選取字串。 |
SendMessageAsync(ISmsMessage) |
使用 SMS 裝置以非同步方式傳送訊息。 方法是非同步,因為傳送作業可能不會立即發生。 訊息工作物件會立即傳回。 |
事件
SmsDeviceStatusChanged |
設定 SMS 裝置狀態變更時要呼叫的事件處理常式。 |
SmsMessageReceived |
設定當裝置收到新簡訊時要呼叫的事件處理常式。 |