Wear OS データレイヤ API は、さまざまな種類のクライアントで構成されています。これらのクライアントは、さまざまな種類のデータやさまざまな接続条件で役立ちます。
このページでは、各クライアント タイプを紹介し、さまざまなクライアントの機能を比較した表を示します。この情報を使用して、アプリに最適なクライアント タイプのセットを選択できます。
データ クライアント
DataClient
オブジェクトを使用すると、DataItem
または Asset
の読み取りまたは書き込みを行うことができます。
各
DataItem
は、ユーザーが所有する付近のすべてのデバイスにブロードキャストされ、同期される情報の単位です。DataItem
は永続的に保存され、データ項目が削除されるまでデバイスはその内容を読み取ることができます。Asset
は、画像やメディア ファイルなど、より大きなデータ ペイロードを対象としています。
メッセージ クライアント
MessageClient
オブジェクトはメッセージの送信が可能なため、リモート プロシージャ コール(RPC)に適しています。たとえば、Wear OS デバイスを使用して、ハンドヘルド デバイスにインストールされているアプリのバージョンを制御できます。
メッセージは、sendMessage()
を使用する一方向のリクエストや、sendRequest()
を使用するリクエスト / レスポンス通信モデルに適しています。データ クライアントとは異なり、メッセージ クライアントはメッセージを送信するためにノードがネットワークに接続されている必要があります。
sendMessage()
メソッドは、リモートノードに配信するためのベスト エフォートであり、組み込みの再試行メカニズムは含まれていません。ネットワーク転送が開始される前にターゲット デバイスが切断された場合、メソッドは TARGET_NODE_NOT_CONNECTED
を返します。
チャネル クライアント
ChannelClient
オブジェクトは、デバイス間のストリーム指向の通信を提供します。チャネルは、2 つのノード間の双方向通信パイプです。これは、次のようなユースケースで役立ちます。
- インターネットに接続できない状況でも 2 台以上の接続済みのデバイス間でデータファイルを転送できます。接続済みデバイスと同期する前にローカル デバイスでアセットのコピーを作成する
DataClient
と比べて、ChannelClient
ではディスク容量を節約できます。 - サイズが大きすぎて
MessageClient
では送信できないファイルを確実に送信できます。 - マイクから入力された音声データなどのストリーム データを転送できます。
チャンネルを開くと、データ クライアントが必要とする個別の DataItem
単位ではなく、連続したバイトストリームでデータを送受信できます。
データフローの管理とデータの整合性の維持は、お客様の責任となります。チャネル クライアントは、データ クライアントと同じレベルの自動データ同期を提供しません。
クライアントの比較
次の表に、さまざまなクライアントの機能を比較します。
クライアントの種類 | データの永続化 | 100 KB を超えるデータをサポートしていますか? | 使用するネットワーク | オフラインでの動作 |
---|---|---|---|---|
データ クライアント | データは無期限に保持される | はい(Asset オブジェクトを使用) |
Bluetooth を推奨します。データはクラウドにバックアップされます。Bluetooth が利用可能な場合は、このバックアップは非同期で行われます | はい、読み取りと書き込みの両方で可能です |
メッセージ クライアント | 永続性なし、再試行なし | × | Bluetooth を優先しますが、利用可能な接続が Wi-Fi のみの場合には Wi-Fi を使用できます | × |
チャネル クライアント | 永続性なし(接続指向) | ○ | Bluetooth を優先しますが、利用可能な接続が Wi-Fi のみの場合には Wi-Fi を使用できます | × |