次の方法で共有


SmsDevice クラス

定義

モバイル ブロードバンド SMS デバイスの操作をサポートします。

Note

この機能は、モバイル ネットワーク オペレーター、モバイル ブロードバンド アダプター IHV、または OEM による特権アクセスが与えられた、モバイル オペレーター アプリと UWP アプリでのみ使用できます。 詳細については、「 モバイル ブロードバンド」を参照してください。

注意

このクラスとそのメソッドは、以前のバージョンの 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
継承
Object Platform::Object IInspectable SmsDevice
属性
実装

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 を呼び出すと、アプリが初めて実行されるときに同意プロンプトがトリガーされます。
  • GetDefaultAsyncFromIdAsync の非同期メソッドのエラー ハンドラーは、ユーザーが同意プロンプトでアクセス許可を付与しなかった場合、またはアクセス許可が取り消された場合にE_ACCESS_DENIEDを受け取ります。
  • ユーザーが取り消した後に SMS へのアクセスを再度有効にする場合は、 GetDefaultAsync または FromIdAsync をもう一度呼び出して SMS にアクセスします。 たとえば、 E_ACCESS_DENIED エラーのエラー ハンドラーには、設定チャームを使用して SMS を再度有効にし、SMS へのアクセスを再試行するためのボタンをタップするようにユーザーに指示する UI が表示される場合があります。 ボタンの背後にあるコードは、他の呼び出しを行う前に GetDefaultAsync または FromIdAsync を呼び出す必要があります。
  • アプリが SMS バックグラウンド イベント (Windows.ApplicationModel.Background.SystemTriggerType.SmsReceived) に登録している場合、アプリがアクセスできるようにするには、まず GetDefaultAsync または FromIdAsync を再度呼び出して SMS にアクセスする必要があります。 バックグラウンド タスクから GetDefaultAsync または FromIdAsync を呼び出すと、同意プロンプトはトリガーされません。 初めて実行した場合、またはユーザーがアクセス許可を付与しなかった場合、またはアクセス許可が取り消された場合は、 E_ACCESS_DENIEDを受け取ります。

C# または C++ で記述されたアプリケーションによって FromIdAsync または GetDefaultAsync を呼び出す SmsDevice オブジェクトの最初の使用は、シングル スレッド アパートメント (STA) スレッド上にある必要があります。 マルチスレッド アパートメント (MTA) スレッドからの呼び出しでは、未定義の動作が発生する可能性があります。

プロパティ

AccountPhoneNumber

SMS デバイスに関連付けられている電話番号を返します。 電話番号を使用して、受信メッセージをアカウントに関連付けることができ、場合によっては、アカウントの受信トレイなどの外部ストレージ メカニズムを関連付けることができます。

CellularClass

SMS デバイスの携帯ネットワーク クラスを返します。 クラスを使用して、適切なエンコードまたは有効なデバイス制限を決定できます。

DeviceStatus

SMS デバイスの状態を返します。これは、デバイスの準備ができているかどうかを示します。 また、デバイスの準備ができていない場合に存在する問題の種類も示します。

MessageStore

デバイス上のメッセージ ストアにアクセスします。 ストアは、クライアントがメッセージを取得できるようになるまでメッセージを保持します。 たとえば、一部のデバイスでは、ストアが SMS メッセージの SIM ストレージに対応している場合があります。

メソッド

CalculateLength(SmsTextMessage)

指定したテキスト メッセージの送信メッセージ長を見積もります。 この見積もりは、ネットワーク上で送信されるメッセージの数を示して、メッセージ全体のテキストを伝達する必要があるクライアントに役立ちます。

FromIdAsync(String)

SMS メッセージを受信したデバイスの SmsDevice のインスタンスを作成します。

FromNetworkAccountIdAsync(String)

指定したモバイル ブロードバンド ネットワーク アカウント ID の SmsDevice のインスタンスを作成します。

GetDefaultAsync()

既定の SMS デバイスに関連付けられている SmsDevice オブジェクトのインスタンスを作成します。 デバイスがビジー状態になる可能性があるため、操作は非同期的に実行されます。 非同期操作オブジェクトは直ちにを返します。

GetDeviceSelector()

SMS デバイスの列挙に使用できるクラス選択文字列を取得します。

SendMessageAsync(ISmsMessage)

SMS デバイスを使用してメッセージを非同期に送信します。 送信操作が瞬時に実行されない可能性があるため、メソッドは非同期です。 メッセージ操作オブジェクトが直ちに返されます。

イベント

SmsDeviceStatusChanged

SMS デバイスの状態が変更されたときに呼び出されるイベント ハンドラーを設定します。

SmsMessageReceived

デバイスが新しいテキスト メッセージを受信したときに呼び出されるイベント ハンドラーを設定します。

適用対象