次の方法で共有


MobileBroadbandAccount オブジェクトを作成する

MobileBroadbandAccount オブジェクトはネットワーク アカウントを表しているため、このようなオブジェクトを作成するにはネットワーク アカウント ID が必要です。 モバイル ブロードバンド アプリは、ネットワークのリストから起動されると、タイル起動コントラクトのパラメーターとして使用するネットワーク アカウント ID を受信します。

アプリがタイルから直接アクティブ化されている場合、タイル起動コントラクトに関連付けられているパラメーターがないため、MobileBroadbandAccount クラスの AvailableNetworkAccountIds 静的プロパティの値を取得する必要があります。 これは、各文字列が 1 つのアカウント ID である文字列の読み取り専用コレクションを返します。 このメソッドが 1 つの文字列を持つコレクションを返す場合は、それ以上のアクションを実行する必要はありません。 以下の JavaScript コード例は、これを指定する方法を示します。

var myNetworkAccountId;
var allNetworkAccountIds = Windows.Networking.NetworkOperators.MobileBroadbandAccount.availableNetworkAccountIds;

if (allNetworkAccountIds.size == 1)
{
  myNetworkAccountId = allNetworkAccountIds[0]; 
}

返されるコレクションに複数の文字列が含まれている場合は、アプリケーションを実行しているエンド ユーザーからの入力が必要です。 1 つの方法は、コレクションを反復処理して、コレクション内のアカウント ID ごとに MobileBroadbandAccount オブジェクトを作成し、そのオブジェクトのプロパティ (電話番号など) を使用してリスト ボックス コントロールを設定することです。 このコントロールはエンド ユーザーに表示され、ユーザーが選択を行った後、他のすべての MobileBroadbandAccount オブジェクトを解放できます。

アカウント ID を取得したら、クラス MobileBroadbandAccountCreateFromNetworkAccountId 静的メソッドを呼び出します。 次のコード例は、JavaScript を使用してこれを指定する方法を示します。

var myNetworkAccountId = "{95499FEF-1579-4547-A0BE-FF271ADBBE76}";
var myNetworkAccountObject = Windows.Networking.NetworkOperators.MobileBroadbandAccount.createFromNetworkAccountId(myNetworkAccountId);

MobileBroadbandAccount.AvailableNetworkAccountIds は空のリストを返します

アプリが信頼されていない場合、ユーザーはコンピューター上に複数のネットワーク通信事業者のアカウントを持つことができるため、このプロパティは例外をスローするのではなく、空のコレクションを返します。 AvailableNetworkAccountIds プロパティは、アプリのメタデータ パッケージが表示できるアカウント ID のみを返します。 AvailableNetworkAccountIds プロパティは、取得時に各アカウント ID にデバイスが関連付けられていることを確認するため、CreateFromNetworkAccountId がアクセス拒否例外をスローしない場合でも、このプロパティは空のコレクションを返すことができます。

これは、ネットワーク ハードウェアが検出されない場合、またはネットワーク ハードウェアにアクセス可能な SIM がない場合に発生する可能性があります。 返されたコレクションが空である正確な理由を調べる簡単な方法は、WWAN ログを確認することです。 ログを収集したら、テキスト ログ ファイルで AvailableNetworkAccountIds を含んでいるエントリを検索します。