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

Wear OS データレイヤ API は、さまざまな種類のクライアントで構成されています。これらのクライアントは、さまざまな種類のデータやさまざまな接続条件で役立ちます。

このページでは、各クライアント タイプを紹介し、さまざまなクライアントの機能を比較した表を示します。この情報を使用して、アプリに最適なクライアント タイプのセットを選択できます。

データレイヤー API を使用するケース

ローカルのスマートウォッチとローカルのスマートフォンの間でのみやり取りを行う場合は、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 を使用できます ×

Data Layer API の操作について詳しくは、データを同期するガイドをご覧ください。データレイヤ API を使用する際の電力に関する考慮事項については、電力を節約するガイドをご覧ください。