モバイル ブロードバンド Windows ランタイム API の概要

次の表に、モバイル ブロードバンド アプリを作成するための API を示します。

API 説明

接続プロファイル API

接続状態に関する情報を提供します (インターネットなど)

デバイス サービス拡張 API

SIM ツールキットや優先ローミング リスト (PRL) のダウンロードなど、デバイス固有の拡張機能を有効にします。

プロビジョニング API

Windows にアカウント プロビジョニング データとデータ使用量情報をプロビジョニングできるようにします。

SIM PIN API

SIM PIN を有効、無効、または変更できるようにします。

SMS API

SMS クライアントを実装するために必要な関数を提供します。

サブスクライバーとデバイス情報 API

SIM にサブスクライバー情報、モバイル ブロードバンド デバイスにデバイス情報を提供します。

USSD API

ネットワーク (クライアントと開始されたネットワーク) との非構造化補助サービス データ (USSD) セッションを確立できるようにします。

このトピックは、次のセクションが参考になります。

モバイル ブロードバンド アカウント API

顧客に関する個人を特定できる情報を取得し、モバイル ブロードバンド デバイスのネットワーク設定を変更するために使用できるメソッドがあるため、モバイル ブロードバンド アカウント API は特権 API です。 つまり、ほとんどの UWP アプリでは、"アクセス拒否" エラーの発生なしにはメソッドを呼び出すことができません。 この API を呼び出せるようになるには、UWP アプリは次の条件を満たしている必要があります。

  • アプリには、それに関連付けられたデバイス メタデータまたはサービス メタデータ パッケージがなければならず、それはパッケージ内の SoftwareInfo.xml ファイルの PrivilegedApplications XML 要素に列挙されている必要があります。 パッケージはアプリケーション専用である必要はありません。つまり、特定の 1 つの UWP アプリが複数のパッケージの PrivilegedApplications 要素に列挙されることもあり得ます。 そのパッケージは、コンピューター上で少なくとも 1 回アクティブになったことがあり、したがってインストールされたことがあるモバイル ブロードバンド デバイスのサービス プロバイダーに関連付けられている必要があります。

  • アプリケーションの appxmanifest ファイルには、モバイル ブロードバンド アカウント API の <DeviceCapability> エントリが必要です。 これを行うには、次の XML 要素をアプリケーションの appxmanifest ファイルの <Capabilities> 要素の子として追加します。

    <DeviceCapability Name="BFCD56F7-3943-457F-A312-2E19BB6DC648" />
    

    <Capabilities> 要素の詳細については、「Windows 8 用アプリ マニフェスト ファイル」を参照してください。

UWP アプリではないアプリケーション (Microsoft Win32 サービスやデスクトップ アプリなど) は、モバイル ブロードバンド アカウント API に無制限にアクセスできます。 これは、これらのアプリケーションで既存の Win32 およびコンポーネント オブジェクト モデル (COM) API を使用して、モバイル ブロードバンド ネットワークへのフル アクセスを取得できるようにするためです。 これらの API は、UWP アプリからは使用できません。

ネットワーク アカウント ID

ネットワーク アカウント ID は、モバイル ブロードバンド アカウントの一意の識別子です。 これは、ID が GSM、CDMA、WiMAX ネットワークのうちどこから取得されたのかを知らなくても使用できる統合 ID を提供します。 Windows では、それまで検出されなかったハードウェア提供のネットワーク サブスクリプション識別子が検出されるたびに、ネットワーク アカウント ID が生成されます。 次のリストは、サポートされている各ネットワークの種類のネットワーク アカウント ID を示しています。

  • GSM ネットワーク: SIM の ICCID は、複数のサブスクリプションを区別するときに使用します。

  • CDMA ネットワーク: モバイル識別番号 (MIN) が使用されます。

Windows では、上のいずれかの種類のネットワークを初めて検出すると、新しいネットワーク アカウント ID を作成し、ハードウェア提供のサブスクリプション識別子の SHA-256 ハッシュにマップした後、両方をレジストリに格納します。 逆に、Windows は、レジストリにハードウェア提供のサブスクリプション識別子のハッシュを見つけた場合、そのハッシュに関連付けられているネットワーク アカウント ID を使用します。 ネットワーク アカウント ID はグローバルに一意である必要がありますが (GUID に基づいています)、格納されるのはハードウェア提供の識別子のハッシュであるため、ネットワーク アカウント ID を生成元の ICCID または MIN にマップするときには、ネットワーク ハードウェアが存在する必要があります。

重要 ネットワーク アカウント ID から ICCID を取得するには、コンピューターと、それらを一緒にマップするために使用されるネットワーク デバイスへのアクセスが必要ですが、ネットワーク アカウント ID は個々のユーザーを一意に識別します。 そのため、個人を特定できる情報を扱うときは、組織のポリシーに従うことをお勧めします。

ネットワーク アカウント ID はモバイル ネットワーク通信事業者 (MNO) によって分離されるため、エンド ユーザーが Provider1 と Provider2 の両方のモバイル ブロードバンド デバイスを持ち、対応するモバイル ブロードバンド アプリがインストールされている場合、Provider1 アプリは Provider2 ネットワーク アカウント ID を使用できなく、その逆も同様です。 すべてのネットワーク アカウント ID を返す関数は、アプリケーションがその関数を呼び出している MNO のネットワーク アカウントの ID のみを返します。 別の MNO に属するネットワーク アカウント ID を使用しようとすると、"アクセス拒否" エラーが発生します。

UWP アプリではないアプリ (Win32 サービスやデスクトップ アプリなど) は、ネットワーク サービス プロバイダーに関係なく、すべてのネットワーク アカウントにアクセスできます。

モバイル ブロードバンド WinRT API の概要