Data Layer API 概览

<ph type="x-smartling-placeholder">
</ph> 基于云的节点由 Google 拥有的服务器控制
图 1.具有手持式设备和 Wear OS 设备。

作为 Google Play 服务的一部分,Wearable Data Layer API 提供 和智能手表之间的通信渠道 联网的手持设备(通常为智能手机)。它是一种同步数据的方式 在设备之间传输数据的过程。

注意:此 API 仅适用于 Wear OS 手表和 配对的 Android 设备。对于与 iOS 手机配对的 Wear OS 手表,应用可 在有互联网连接的情况下查询其他云端 API。有关 请访问 网络访问和同步已开启 Wear OS

注意:由于数据层 API 是专为 在手持设备与穿戴式设备之间进行通信时,您只能使用这些 API 用于在这些设备之间建立通信。例如,不要试图 打开底层套接字来创建通信通道。

常见用例

Data Layer API 对健身和媒体用例特别有用。

健身应用

如果要将锻炼数据从 Wear OS 应用发送到移动应用健身应用,通常需要 将手表捕获的锻炼数据写入移动应用或健康 建立联系。如果使用 Data Layer API 传输数据,请使用 消息客户端:用于从 Wear OS 应用向移动应用发送锻炼数据 才能向 Health Connect 写入数据。

在家锻炼期间将实时数据流式传输到移动设备

常见的居家锻炼场景是流式传输来自 Wear OS 的心率数据 设备复制到移动设备并向用户显示最新的心率信息 。如需流式传输此数据,请使用频道客户端

媒体应用

如需通过从 手表发送到手机,请使用消息客户端

通信选项

数据可以通过以下方式之一进行传输:

  1. 直接(当与 Wear OS 设备和另一台设备。
  2. 通过可用的网络,例如 LTE 或 WLAN,使用 Google 服务器上的网络节点作为中间方。

所有数据层客户端都可以使用蓝牙或使用 具体取决于设备的可用连接。假设数据 使用数据层传输数据的方式有时可能会使用 Google 拥有的服务器。

蓝牙

使用蓝牙连接设备时,数据层会使用此连接。 设备之间会有一个使用标准加密通道加密的通道 蓝牙加密,由 Google Play 服务管理。

云端

当蓝牙不可用时,数据会自动通过 Google Cloud 路由。 通过 Google Cloud 传输的所有数据都会经过端到端加密。

通信安全

为了提高安全性,Google Play 服务会实施以下限制 Wear OS 设备上安装的应用与同一应用之间的通信 附近手持设备上安装:

  • 软件包名称必须在各种设备间保持一致。
  • 软件包签名必须在各种设备间保持一致。

无论连接类型如何,其他应用都无法访问这些数据。

设置

Wearable Data Layer API 的依赖项如下:

请在 Wear 模块的 build.gradle 文件中添加以下依赖项:

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:18.2.0")
}

简化初始配对过程

Horologist 在平台 API 的基础上提供了多个帮助程序库。 它包含一个数据层库,可帮助您在 移动设备和 Wear OS 设备之间。此外,它还提供便捷的 API, 执行以下操作:

  • 在另一台设备上安装应用。
  • 在其他设备上启动应用。
  • 在其他设备上启动特定 activity。
  • 启动配套应用。

访问数据层

如需调用 Data Layer API,请使用 Wearable 类获取 各种客户端类,例如 DataClientMessageClient

如需了解详情,请参阅 DataLayer 示例

使用最小客户端

如需创建客户端,请参阅以下示例代码:

Kotlin

val dataClient: DataClient = Wearable.getDataClient(context)

Java

DataClient dataClient = Wearable.getDataClient(context);

上下文可以是任何有效的 Android 上下文。如果您在 Activity 的范围,请使用 WearablegetDataClient() 方法 类。这样,某些互动就能以对话框的形式显示, 通知,例如在用户被要求更新其 Google 版本时 Play 服务。

默认情况下,监听器的回调在应用的主界面线程上进行。要 回调,请使用 WearableOptions 对象 指定自定义 Looper

Kotlin

runBlocking {
    Wearable.getDataClient(context, options)
}

Java

WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build();
DataClient dataClient = Wearable.getDataClient(context, options);

如需了解详情,请参阅 WearableOptions.Builder 参考文档。

根据需要重新创建客户端实例

Wearable API 客户端,例如 DataClientMessageClient, 成本低廉。因此,与其保留这些客户端,不如 您可以根据自己的需要,使用适合您应用的样式

客户端状态(例如一组已注册的监听器)在所有 如果 Google Play 服务在更新应用期间进行了更新, 。