发送和同步数据

有了 Android Wear 2.0,手表无需访问 Android 或 iOS 手机,即可直接与网络通信。

另外,Google Play 服务中包含的 Wearable Data Layer API 可为应用提供可选的通信渠道。尽管 Wear 应用可以使用 Wearable Data Layer API 与手机应用通信,但不建议使用此 API 连接网络

Data Layer API 由一组数据对象(系统可以发送和同步这些数据对象)以及各种侦听器(用于向应用通知特定 Event)组成,具体如下:

DataItem
DataItem 提供在手持式设备和穿戴式设备之间自动同步的数据存储。
Message
MessageApi 类可以发送消息,适用于远程过程调用 (RPC),例如通过穿戴式设备控制手持式设备的媒体播放器,或者通过手持式设备启动穿戴式设备上的 Intent。Message 非常适合单向请求或请求/响应通信模型。如果手持式设备已连接穿戴式设备,系统会将要传输的消息排队,并返回成功结果代码。如果这些设备未连接,将返回错误。成功结果代码并不能说明消息已成功传输,因为设备可能在收到结果代码后断开连接。
Asset
Asset 对象用于发送数据的二进制 blob,例如图像。您将资源附加到数据项后,系统会自动为您处理资源传输,通过缓存大型资源,避免重复传输,从而节省蓝牙带宽。
WearableListenerService(对于 Service)

通过扩展 WearableListenerService,您可以侦听 Service 中重要的数据层 Event。系统管理 WearableListenerService 的生命周期,当它需要发送数据项或消息时与此 Service 绑定,而在不需要进行任何操作时取消与此 Service 的绑定。

DataListener(对于前台 Activity)
通过在某个 Activity 中实现 DataListener,您可以在此 Activity 处于前台时侦听重要的数据层 Event。通过使用此侦听器代替 WearableListenerService,您可以仅在用户正在使用您的应用时侦听相关更改。
Channel
您可以使用 ChannelApi 类,将大数据项(例如音乐和电影文件)从手持式设备传输至穿戴式设备。使用 Channel API 进行数据传输有以下好处:
  • 当使用附加到 DataItem 对象的 Asset 对象时,在未提供自动同步的情况下,在两台或更多连接的设备之间传输大数据文件。Channel API 可节省磁盘空间,与此相反,DataApi 类会在与连接的设备同步前在本地设备上创建资源副本。
  • 可靠地发送因容量过大而无法使用 MessageApi 类发送的文件。
  • 传输流数据,例如从网络服务器下载的音乐或麦克风语音数据。

警告:由于这些 API 是为手持式设备与穿戴式设备之间的通信而设计,因此,您只能将这些 API 用于在这些设备之间建立通信。例如,不要尝试打开低级套接字来创建通信信道。

Android Wear 支持多台穿戴式设备连接到同一台手持式设备。例如,当用户在手持式设备上保存一个便签时,它会自动显示在用户的两台 Wear 设备上。为了在设备之间同步数据,Google 服务器将在设备网络中托管云节点。系统与直接连接的设备、云节点以及通过 WLAN 连接至云节点的穿戴式设备同步数据。

图 1. 包含手持式设备和穿戴式设备的节点网络示例。

课程

网络访问和同步
本课程将向您介绍如何获取高带宽网络。本课程还提供云消息传递等方面的入门知识。
访问 Wearable Data Layer
本课程将向您介绍如何创建用于访问 Data Layer API 的客户端。
同步数据项
数据项是存储在重复数据存储中的对象,重复数据存储自动从手持式设备同步到穿戴式设备。
传输资源
资源是传输图像或媒体文件所常用的二进制数据 blob。
发送和接收消息
消息是针对可在穿戴式设备和手持式设备之间来回发送的“发后不理”消息而设计。
处理数据层 Event
通知数据层更改和其他 Event。