Nearby Connections は、ネットワーク接続に関係なく、アプリが付近のデバイスをリアルタイムで検出、接続、リアルタイムで交換できるピアツーピア ネットワーキング API です。
ユースケースの例:
- 共同ホワイトボード: 共有の仮想ホワイトボードを使用して、近くの参加者とアイデアを書き留めることができます。
- ローカル マルチプレーヤー ゲーム: マルチプレーヤー ゲームを設定し、近くにいる他のユーザーを招待します。
- マルチスクリーン ゲーム: スマートフォンやタブレットをゲーム コントローラとして使用し、Android TV など、付近の大画面 Android デバイスに表示されるゲームをプレイできます。
- オフライン ファイル転送: ネットワーク接続を必要とせずに、写真、動画、その他の種類のデータをすばやく共有できます。
はじめに
Nearby Connections を使用すると、オフライン ピアツーピアでのアドバタイズ、検出、付近のデバイス間の接続が可能になります。デバイス間の接続は、高帯域幅、低レイテンシで完全に暗号化され、高速で安全なデータ転送を可能にします。
この API の主な目標は、シンプルで信頼性が高く、パフォーマンスに優れたプラットフォームを提供することです。内部的には、この API は Bluetooth、BLE、Wi-Fi 技術を組み合わせて、それぞれの長所を活用してそれぞれの弱点を回避します。これにより、Bluetooth と Wi-Fi のあいまいな部分をさまざまなプラットフォームや OS バージョンで効果的に抽象化できるため、デベロッパーはユーザーにとって重要な機能に集中できます。
API の概要
API の使用は、接続前と接続後の 2 つのフェーズに分類されます。
接続前のフェーズでは、広告主は自身をアドバタイズし、Discoverer は付近の広告主を検出して接続リクエストを送信します。Discoverer から広告主への接続リクエストにより、両側が接続リクエストを個別に承認(または拒否)する対称認証フローが開始されます。
両側で接続リクエストが受け入れられると、接続が確立されたとみなされ、デバイスは接続後のフェーズに入ります。この段階で、両側でデータを交換できます。
広告と見つけやすさ
広告主は他の Discover に表示され、新しい広告主が見つかったり紛失したりすると通知が届きます。
接続の確立
検出者が近くの広告主への接続を希望する場合、接続をリクエストできます。
両側に接続の開始プロセスが通知され、双方が接続を承認または拒否できます。
双方が応答すると、双方に結果が通知されます。双方が接続を受け入れた場合、接続が確立されたと見なされ、データ転送を開始できます。
データの交換
接続が確立されると、以降の API 使用量は対称になるため、広告主と Discoverer は区別されなくなります。
双方がデータを交換できるようになりました。サポートされているペイロードは次の 3 種類です。
- バイト数: 32 KB に制限されたバイト配列。メタデータや制御メッセージなどを送信する場合に適しています。
- ファイル: 任意のサイズのファイル。プロセスの境界を越えてコピーが行われるため、アプリからネットワーク インターフェースに転送されます。
- ストリーム: 録音された音声/動画の場合のように、最終的に最終的なサイズが事前にわからないように、その場で生成されるデータのストリーム。
受信側には、新しい受信データと、進行状況の更新、キャンセル、障害に関する通知が届きます。
確立される接続は全二重です。つまり、広告主と検出者は同時にデータの送受信を行うことができます。
データの収集
Google Play 開発者サービスの Nearby SDK を使用する場合、エクスペリエンス向上のために使用状況の分析データが収集されます。
- パフォーマンス指標: Nearby SDK を使用してデバイスをスキャンし、接続すると、検出と接続のレイテンシ、信頼性、スループットが収集されます。
- デバイス情報:デバイスモデル、国、ビルド バージョン、アプリ パッケージ名が収集され、パフォーマンス指標に関連付けられ、リージョン スライスとデバイス固有のスライスが識別されます。
エンドユーザーは、[設定] > [Google] > [使用状況と診断情報] にアクセスして、この収集を許可または拒否できます。