Wear OS データレイヤ API は、さまざまなタイプのクライアントで構成されています。これらのクライアントは、さまざまなタイプのデータやさまざまな接続条件で役立ちます。
このページでは、各クライアント タイプについて説明し、さまざまなクライアントの機能を比較した表を示します。この情報を使用して、アプリに最適なクライアント タイプのセットを選択できます。
Data Layer 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 の操作について詳しくは、データの同期ガイドをご覧ください。Data Layer API を使用する際の電力に関する考慮事項については、電力を節約するガイドをご覧ください。