选择客户端类型

Wear OS 数据层 API 由几种不同类型的客户端组成,这些客户端在不同的数据类型和不同的连接条件下很有用。

此页面介绍每种客户端类型,并包含一个比较不同客户端功能的表格。使用这些信息,您可以选择最适合您的应用的客户端类型集。

数据客户端

一个 DataClient 对象允许您读取或写入 DataItemAsset

  • 每个 DataItem 都是一个信息单元,会在用户拥有的所有附近设备之间广播和同步。 DataItem 会持久存储,并且您的设备可以读取其内容,直到数据项被删除。

  • Asset 用于较大的数据有效负载,例如图像或媒体文件。

消息客户端

一个 MessageClient 对象可以发送消息,并且适用于远程过程调用 (RPC),例如使用 Wear OS 设备控制安装在手持设备上的应用程序版本。

消息非常适合使用 sendMessage() 进行单向请求,或使用 sendRequest() 进行请求-响应通信模型。与数据客户端不同,消息客户端需要节点连接到网络才能发送消息。

sendMessage() 方法尽力将消息传递到远程节点,并且不包含任何内置的重试机制。如果目标设备在网络传输开始之前断开连接,则该方法将返回 TARGET_NODE_NOT_CONNECTED

通道客户端

一个 ChannelClient 对象提供设备之间的面向流的通信。通道是两个节点之间的双向通信管道,对于以下用例很有用

  • 在互联网不可用时,在两个或多个连接的设备之间传输数据文件。 ChannelClientDataClient 节省磁盘空间,后者在与连接的设备同步之前会在本地设备上创建资源的副本。
  • 可靠地发送使用 MessageClient 发送过大的文件。
  • 传输流式数据,例如来自麦克风的语音数据。

打开通道后,您可以以连续的字节流发送和接收数据,而不是数据客户端所需的离散 DataItem 单元。

您负责管理数据流并保持数据一致性。通道客户端不提供数据客户端提供的相同级别的自动数据同步。

客户端比较

下表比较了不同客户端的功能

客户端类型 数据持久性 支持大于 100 KB 的数据? 要使用的网络 离线工作?
数据客户端 数据无限期持久化 是(使用 Asset 对象) 首选蓝牙。数据会备份到云端;如果蓝牙可用,则此备份会异步执行 是,读写均可
消息客户端 无持久性和无重试 首选蓝牙,但如果仅有 Wi-Fi 连接可用,则可以使用 Wi-Fi
通道客户端 无持久性(面向连接) 首选蓝牙,但如果仅有 Wi-Fi 连接可用,则可以使用 Wi-Fi