Wear OS Data Layer API 由几种不同类型的客户端组成,适用于不同类型的数据以及在不同连接条件下。
本页介绍了每种类型的客户端,并包含一个表格,用于比较不同客户端的功能。您可以根据这些信息选择最适合您的应用的一组客户端类型。
数据客户端
借助 DataClient
对象,您可以读取或写入 DataItem
或 Asset
:
每个
DataItem
都是一个信息单元,会广播并同步到用户拥有的所有附近设备。DataItem
会永久存储,并且在数据项被删除之前,您的设备可以读取其内容。Asset
适用于较大的数据载荷,例如图片或媒体文件。
消息客户端
MessageClient
对象可以发送消息,适用于远程过程调用 (RPC),例如使用 Wear OS 设备控制手持设备上安装的应用版本。
消息非常适用于使用 sendMessage()
的单向请求,或使用 sendRequest()
的请求-响应通信模型。与数据客户端不同,消息客户端需要节点连接到网络才能发送消息。
sendMessage()
方法会尽力传送到远程节点,但不包含任何内置重试机制。如果目标设备在网络传输开始之前断开连接,该方法会返回 TARGET_NODE_NOT_CONNECTED
。
信道客户端
ChannelClient
对象可在设备之间提供流式通信。通道是两个节点之间的双向通信管道,适用于以下用例:
- 在无法连接互联网时,在两台或更多已连接的设备之间传输数据文件。
ChannelClient
比DataClient
更节省磁盘空间,后者在与连接的设备同步之前,会在本地设备上创建资源的副本。 - 可靠地发送因过大而无法使用
MessageClient
发送的文件。 - 传输流式数据,例如来自麦克风的语音数据。
打开通道后,您可以以连续的字节流(而不是数据客户端所需的离散 DataItem
单元)发送和接收数据。
您负责管理数据流并确保数据一致。渠道客户端提供的自动数据同步级别不如数据客户端。
客户端对比
下表比较了不同客户端的功能:
客户端类型 | 数据持久性 | 是否支持大于 100 KB 的数据? | 要使用的网络 | 是否可以离线使用? |
---|---|---|---|---|
数据客户端 | 数据会无限期保留 | 是(使用 Asset 对象) |
建议使用蓝牙。数据会备份到云端;如果蓝牙可用,此备份会异步进行 | 是,读写均可 |
消息客户端 | 无持久性且不重试 | 否 | 首选蓝牙,但如果 Wi-Fi 是唯一可用的连接类型,则可以使用 Wi-Fi | 否 |
通道客户端 | 无持久性(面向连接) | 是 | 首选蓝牙,但如果 Wi-Fi 是唯一可用的连接类型,则可以使用 Wi-Fi | 否 |