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