クライアントの種類の選択

Wear OS Data Layer 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 を使用できます ×