Skip to content

Most visited

Recently visited

navigation

发送和同步数据

依赖关系和先决条件

  • 在手持式设备上安装 Android 4.3(API 级别 18)或更高版本
  • 最新版本 Google Play 服务
  • Android Wear 设备或 Wear AVD

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

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

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

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

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

DataListener(对于前台操作组件)
通过在某个操作组件中实现 DataListener,您可以在此操作组件处于前台时侦听重要的数据层事件。通过使用此侦听器代替 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。
发送和接收消息
消息是针对可在穿戴式设备和手持式设备之间来回发送的“发后不理”消息而设计。
处理数据层事件
通知数据层更改和其他事件。
This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)