Wear OS 数据层 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
对象) |
首选蓝牙。数据备份到云端;如果蓝牙已开启 此备份是异步执行的 | 支持,读写操作 |
消息客户端 | 不会持久化,也不会重试 | 否 | 首选蓝牙,但如果 WLAN 是唯一设备类型,则可使用 WLAN 有可用连接 | 否 |
渠道客户端 | 无持久性(面向连接) | 是 | 首选蓝牙,但如果 WLAN 是唯一设备类型,则可使用 WLAN 有可用连接 | 否 |