Wear OS 上的健康服务

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

请参阅 GitHub 上的 健康服务示例代码库,获取健身应用示例。

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

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

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

with-health-services

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

  • 利用平台原生运行的强大算法。
  • 通过使用健康服务中针对电源效率优化的传感器配置来节省电量。
  • 使应用适用于未来的 Wear 3+ 设备。健康服务 API 在所有 Wear 3+ 设备上保持一致,使您的应用更容易保持最新。
  • 通过使用标准化的平台计算,确保同一设备上所有应用的数据一致性。
  • 实现活动感知体验,包括检测从其他应用开始的正在进行的运动的能力。

这些优势让开发者可以专注于开发独特的功能和用户体验,同时依靠平台以节能的方式提供可靠和一致的指标。

健康服务概念

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

数据类型

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

如需了解更多信息,请参阅 数据类型 的完整列表。

事件

当用户达到某个目标状态或事件时,应用会收到事件通知。例如,用户可以在运动应用中注册一个距离目标,然后当用户跑完一定距离时,应用会通知用户。另外,可以为用户达到特定步数或入睡等情况使用被动目标。

如需了解更多信息,请参阅运动目标被动目标

运动类型

健康服务将运动视为一项重要功能,并支持多种运动类型,例如跑步或滑雪。运动进行期间,健康服务可以收集选定数据类型的指标并报告给管理该运动的应用。

如需了解更多信息,请参阅运动类型的完整列表。

使用健康服务创建应用

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

被动体验

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

如需了解更多信息,请参阅被动数据更新

主动体验

使用 MeasureClient,您的应用可以注册监听器以接收快速数据更新。这适用于短期体验,例如当用户查看您的应用界面时。尽量缩短应用使用注册监听器的时间,因为它会增加传感器采样率,从而增加功耗。此 API 不适用于后台捕获或运动跟踪。

如需了解更多信息,请参阅使用 MeasureClient 进行即时健康测量

使用 ExerciseClient,您的应用可以管理用户的运动,设置运动目标,并监听当前运动状态的更新。只要运动属于您的应用,您的应用还可以通过此 API 接收快速数据更新。ExerciseClient 可用于跑步应用等,允许用户记录他们的跑步情况,在设备上显示实时指标,并记录数据以供进一步分析。

如需了解更多信息,请参阅使用 ExerciseClient 记录运动

使用合成数据进行测试

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

如需了解更多信息,请参阅将合成数据与健康服务配合使用