Wear OS 上的健康服务

Wear OS 3 及更高版本包含一项名为健康服务的服务。健康服务充当设备上各种传感器和相关算法的中介,为应用提供与活动、锻炼和健康相关的高质量数据。

健康服务 API 处于测试阶段,已准备好投入生产使用。

请参阅 GitHub 上的 健康服务示例存储库,了解健身应用示例。

健康服务如何帮助应用开发者

在没有健康服务的情况下,应用必须连接到一个或多个传感器,适当地配置每个传感器,接收原始传感器数据,并使用自己的算法推导出有意义的信息。例如,应用可能会注册 Sensor.TYPE_PRESSURE 更新以获取当前气压,使用它计算当前海拔高度,并随着时间的推移聚合此数据以显示用户活动期间的海拔变化。

健康服务会自动适当地配置所有与健身和健康相关的传感器以满足用例,收集传感器数据,并计算心率、距离、卡路里、海拔高度、楼层、速度、配速等指标。应用可以直接从健康服务注册这些数据。

with-health-services

使用健康服务的一些好处包括:

  • 利用在平台上本地运行的功能强大的算法。
  • 通过使用针对电源效率进行了优化的健康服务传感器配置来节省电池电量。
  • 使应用能够面向 Wear 3+ 设备。健康服务 API 在 Wear 3+ 设备之间保持一致,从而更轻松地保持应用更新。
  • 通过使用标准化的平台计算,确保同一设备上所有应用之间的数据一致性。
  • 启用活动感知体验,包括检测从其他应用启动的正在进行的锻炼的能力。

这些好处使开发者能够专注于开发独特的功能和用户体验,同时依靠平台以节能的方式提供强大且一致的指标。

健康服务概念

在使用健康服务进行开发时,请牢记以下概念。

数据类型

健康服务提供各种从设备上所有可用来源收集并持续更新的数据。数据分为两大类:在单个时间点采样的数据,例如 HEART_RATE_BPM,以及在一段时间内获取的数据,例如 DISTANCE

有关更多信息,请参阅完整的 数据类型 列表。

事件

当用户达到某个目标状态或事件时,应用会接收事件。例如,用户可以在锻炼应用中注册距离目标,然后应用会在他们跑完一定距离时通知用户。或者,对于用户达到某个步数或入睡等情况,可以使用被动目标。

有关更多信息,请参阅 锻炼目标被动目标

锻炼类型

健康服务将锻炼视为一等功能,并支持多种锻炼类型,例如跑步或滑雪。在锻炼进行期间,健康服务可以收集所选数据类型的指标,并向管理该锻炼的应用报告。

有关更多信息,请参阅完整的锻炼类型列表。

使用健康服务创建应用

按照以下部分所述使用健康服务创建应用。

被动体验

使用PassiveMonitoringClient,您的应用实现了一个PassiveListenerService,该服务接收有关数据类型或事件的更新。这适用于数据更新相对不频繁的长期体验。

有关更多信息,请参阅被动数据更新

主动体验

使用MeasureClient,您的应用注册侦听器以接收快速数据更新。这适用于短暂的体验,例如用户查看应用 UI 时。尽量减少应用使用已注册侦听器的时间,因为这会增加传感器采样率,从而增加功耗。此 API 不适用于后台捕获或锻炼跟踪。

有关更多信息,请参阅使用 MeasureClient 进行即时健康测量

使用ExerciseClient,您的应用可以管理用户的锻炼、设置锻炼目标并侦听有关当前锻炼状态的更新。只要锻炼属于您的应用,您的应用也可以通过此 API 接收快速数据更新。ExerciseClient 可用于诸如跑步应用之类的应用,这些应用允许用户记录他们的跑步,在他们的设备上显示实时指标,并记录数据以供进一步分析。

有关更多信息,请参阅使用 ExerciseClient 记录锻炼

使用合成数据进行测试

要测试您的应用是否正在接收来自健康服务的更新,请手动将设备设置为发出数据,就像用户正在进行锻炼一样。

有关更多信息,请参阅将合成数据与健康服务一起使用