Windows Phone の通信

2013/12/05

対象: Windows Phone 8 | Windows Phone OS 7.1

このトピックでは、Windows Phone アプリが他のアプリおよびリモート データ ストアと通信する方法について説明します。ソケット、Bluetooth、近距離無線通信 (NFC) の Proximity API、Voice over IP (VoIP)、Open Data Protocol (OData) クライアント、および Web サービスについて説明します。また、ネットワーク情報と通信量モニター API についても説明します。

このトピックは、次のセクションで構成されています。

チャット アプリなど、Web 経由での双方向通信に対応するために、Windows Phone OS 7.1 はソケット ベースのアプリをサポートしています。ソケットでは、クライアントまたはサーバー側から通信を開始することができ、どちらのエンドポイントからも独立してメッセージを送信できます。ソケット アプリでは System.Net.Sockets API を使用します。詳細については、「Windows Phone のソケット」を参照してください。

Bluetooth はワイヤレス通信技術です。この技術により、10 メートル以内にあるデバイスどうしが相互に通信できます。この技術を使用すると、物理的に接続されていなくてもデバイスが通信できます。Bluetooth テクノロジが採用されているデバイスやアプリには、ワイヤレス ヘッドフォン、リモート制御のおもちゃ、マルチプレイヤー ゲームなどがあります。Windows Phone 8 に導入された API を使用すると、アプリは Bluetooth 経由で別のアプリやデバイスと通信できます。詳細については、「Windows Phone 8 の Bluetooth」を参照してください。

Windows Phone 8 は、近距離無線通信 (NFC) による 近接 通信をサポートしています。Proximity は、近距離にあるデバイス間の接続をサポートする Windows ランタイムのクラスを参照します。この API を使用すると、タップしたり、無線範囲内でアプリ (ピア アプリ) を実行している他のデバイスを参照したりして、アプリとの接続を確立できます。たとえば、アプリの 1 つがマルチプレーヤー ゲームの場合、2 人のユーザーが各自の携帯電話で互いにタップすると、共有ゲーム セッションが確立されます。Proximity API の詳細については、「Windows Phone 8 の近接通信」を参照してください。

Windows Phone 8 から、Windows Phone の Voice over IP (VoIP) アプリを開発できるようになりました。Windows Audio Session API (WASAPI) のサブセットを使用して、アプリはオーディオ ストリームをキャプチャおよびレンダリングできます。また、Windows Phone VoIP アプリはビデオ ベースの VoIP 通話をストリーム転送できます。詳細については、「Windows Phone 8 用の VoIP アプリ」を参照してください。

Windows Phone 8 の通信量モニター機能では、ユーザーが各自のデータ通信プランの上限を指定できます。通信量モニターは、ユーザーが指定した上限と関連させてデータの使用状況を監視します。アプリはこの情報を利用して、データの使用量が上限に近づいたら使用量を減らしたり、上限を超えたときはデータの使用を止めたりして、ユーザーが節約できるようにします。詳細については、「Windows Phone 8 の通信量モニター API でデータの使用を調整する方法」を参照してください。

ユーザーによる Web ベース アプリの操作性は、デバイスのネットワーク接続の品質と可用性に大きく依存します。Microsoft.Phone.Net.NetworkInformation 名前空間には、アプリを実行しているデバイスのネットワークの状態をアプリで把握できるようにするためのクラスが用意されています。たとえば、アプリで携帯データや Wi-Fi 接続が有効になっているかどうかを確認できます。API を使用して、携帯ネットワークまたは携帯ネットワーク以外のネットワーク設定を行うこともできます。詳細については、「Windows Phone のネットワークとネットワーク インターフェイスの情報」を参照してください。

Web サービスを使用すると、インターネット経由でさまざまなデータにプログラムからアクセスすることができます。データ サービスは、Open Data Protocol (OData) を実装する HTTP ベースの Web サービスで、データ モデルによって定義され、URI (Uniform Resource Identifier) を使用してアクセスできるリソースとしてデータを公開します。

Web サービスとデータ サービスのいずれも、オープンな XML ベースの言語を使用して Web ベースの API を記述します。Web サービスで提供するサービスの記述には、Web サービス記述言語 (WSDL) を使用します。データ サービスで提供するデータ モデルは、概念スキーマ定義言語 (CSDL) で記述します。詳細については、「Web サービス記述言語 (WSDL)」と「概念スキーマ定義言語」を参照してください。

Web サービス

インターネット上で公開されている大半の Web サービスは HTTP に基づいています。そのため、HttpWebRequest および WebClient クラスを使用して、Windows Phone アプリから Web サービスにアクセスすることができます。Web サービスが頻繁に使用する追加コードの生成を容易にするには、サービス モデル プロキシ生成ツール (SLsvcUtil.exe) または Visual Studio の [サービス参照の追加] 機能を使用してプロキシ クラスを生成します。WebClient クラスを使用して RSS フィードにアクセスするコード例については、「Windows Phone 用の基本的な RSS リーダーを作成する方法」を参照してください。

Web サービス プロキシ クラスは、Web サービスの WSDL ファイルに基づいて、Web サービスのシリアル化、要求、および応答のコードを実装します。対応する Web サービスとの通信には、Windows Phone アプリで生成したプロキシ クラスを使用できます。

データ サービス (OData)

データ サービスは、Open Data Protocol (OData) を実装する HTTP ベースの Web サービスで、データ モデルによって定義され、URI を使用してアクセスできるリソースとしてデータを公開します。これにより、Representational State Transfer (REST) のセマンティクス (特に、標準的な HTTP 動詞である GET、PUT、POST、および DELETE) を使用して、データへのアクセスや変更を行うことが可能になります。

データ サービスは HTTP に基づいているため、HttpWebRequest およびWebClient クラスを使用して、Windows Phone アプリからデータ サービスにアクセスすることができます。データ サービスが必要とする追加コードの生成を容易にするには、WCF Data Services クライアント ユーティリティ (DataSvcUtil.exe) または Visual Studio の [サービス参照の追加] 機能を使用してデータ サービス CSDL ファイルに基づくプロキシ クラスを生成します。対応するデータ サービスとの通信には、Windows Phone アプリで生成したプロキシ クラスを使用できます。

メモメモ:

WCF Data Services を使用すると、.NET Framework アプリで Web からの Open Data Protocol (OData) サービスの作成および使用が可能になります。Windows Phone の OData クライアントは Windows Phone SDK には含まれておらず、別途ダウンロードする必要があります。OData および WCF Data Services の詳細については、「WCF Data Services Tools for Visual Studio」を参照してください。

クラスとユーティリティ

Web 要求を作成するのに直接使用できるクラスと、Windows Phone アプリから特定の種類の Web 要求を作成するように最適化されたその他のクラスを生成するのに使用できるユーティリティを次に示します。

  • WebClient クラス:URI ベースのリソースとデータを送受信するための共通メソッドを提供します。

  • HttpWebRequest クラス:WebRequest 抽象クラスの HTTP 固有の実装を提供します。

  • Silverlight サービス モデル プロキシ生成ツール (SLsvcUtil.exe):Web サービスの WSDL ファイルに基づいてプロキシ クラスを生成します。

  • Visual Studio のサービス参照の追加機能:Web サービスの WSDL ファイルまたはデータ サービスの CSDL ファイルに基づいてプロキシ クラスを生成します。

  • WCF Data Service クライアント ユーティリティ (DataSvcUtil.exe):データ サービスの CSDL ファイルに基づいてプロキシ クラスを生成します。

次の表は、さまざまな種類の HTTP ベースのプログラミングで使用できるクラスを示しています。

クラス

一般的な HTTP プログラミング

HTTP ベースの Web サービス

データ サービス

WebClient クラス

はい

はい

はい

HttpWebRequest クラス

はい

はい

はい

SLsvcUtil.exe で生成されたクラス

いいえ

はい

いいえ

[サービス参照の追加] 機能で生成されたクラス

いいえ

はい

はい

DataSvcUtil.exe で生成されたクラス

いいえ

いいえ

はい

WebClient クラスと HttpWebRequest クラスは、一般的な HTTP 要求から Web サービスやデータ サービスのプログラミングまで、幅広い HTTP ベースのプログラミングで使用できます。アプリで Web サービスやデータ サービスを使用する方法によっては、WebClient クラスや HttpWebRequest クラスを排他的に使用するために大量のコードの記述が必要になる場合があります。

Web サービスまたはデータ サービスのクライアント アプリを開発する場合、HTTP レベルのプログラミングを行う代わりにプロキシ クラスを使用します。プロキシ クラスは、それぞれ対応する WSDL または CSDL ファイルに基づいて、Web サービスまたはデータ サービスを表すクラスです。詳細については、このトピックの以下のセクションを参照してください。

セキュリティの考慮事項

アプリ キーを必要とする Web サービスに接続する場合は、アプリ キーをデバイス上で実行されるアプリと一緒に保存しないでください。代わりに、ユーザーを認証するプロキシ Web サービスを作成し、アプリ キーを使用して外部のクラウド サービスを呼び出します。セキュリティに関する推奨事項の詳細については、「Windows Phone の Web サービス セキュリティ」を参照してください。

Web サービスの制限

各 Windows Phone アプリの同時送信接続数は最大 6 に制限されています。

Web サービス クライアントのコードを Windows Phone アプリ用に移植する場合は、.NET API を確認して、コード内で使用されているメソッドがサポートされていることを確認してください。Windows Phone でサポートされる API の詳細については、「Windows Phone の .NET API」を参照してください。

表示:
© 2014 Microsoft