Wear OS 上的健康服务

Wear OS 3(对应于 API 级别 30)包含一项健康服务。健康服务充当设备上各种传感器和相关算法的中间层,为应用提供与活动、运动和健康相关的高质量数据。

Health Services API 目前处于 Beta 版阶段,随时可投入实际使用。

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

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

如果没有健康服务,应用必须连接到一个或多个传感器,适当配置每个传感器,接收原始传感器数据,并使用自己的算法来获取有意义的信息。例如,应用可能会注册 Sensor.TYPE_PRESSURE 的更新以获取当前气压,并使用它来计算当前海拔,并持续汇总这些数据以显示用户活动时段的高度变化。

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

with-health-services

使用健康服务的优势包括:

  • 利用在该平台上以原生方式运行的强大算法。
  • 使用健康服务中针对节能进行了优化的传感器配置来节省电量。
  • 为 Wear 3 设备提供面向未来的应用。Health Services API 在不同 Wear 3 设备上保持一致,可让您更轻松地更新应用。
  • 通过使用标准化平台计算,可以确保同一设备上所有应用的数据保持一致。
  • 启用活动感知体验,包括检测其他应用中启动并正在进行的锻炼。

所有这一切都让开发者能够专注于开发独特的功能和用户体验,同时依靠平台以高能效的方式提供强大且一致的指标。

健康服务概念

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

数据类型

健康服务提供从设备上的所有可用来源收集并持续更新的各种数据。这些数据类型分为两大类:在单一时间点采样的数据(如 HEART_RATE_BPM)和在特定时间段内获取的数据(如 DISTANCE)。

事件

当用户达到特定目标状态或事件时,应用会收到事件。例如,用户可以在锻炼应用中注册距离目标,并且当用户跑步达到一定距离时,应用会通知用户。或者,在用户达到特定步数或入睡的情况下使用被动目标。

锻炼类型

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

如需了解详情,请参阅锻炼类型的完整列表。

使用健康服务创建应用

如需使用健康服务创建应用,请按照以下部分所述的方法操作。

被动体验

借助 PassiveMonitoringClient,您的应用可以实现 PassiveListenerService,用于接收与数据类型或事件相关的更新。这适用于持续长时间的体验,即数据更新相对不频繁且会随时间推移而发生变化。

如需了解详情,请参阅被动数据更新

主动体验

借助 MeasureClient,您的应用可以注册监听器以接收快速数据更新。这适用于短期体验,例如在用户查看应用界面时。应用务必要尝试尽可能减少注册监听器所花费的时间,因为这会增加传感器采样率,进而增加功耗。此 API 不适用于后台捕获或锻炼跟踪。例如,MeasureClient 可用于测量血氧水平 (SpO2) 的应用。

借助 ExerciseClient,您的应用可以管理用户的锻炼活动、设置锻炼目标,并监听与当前锻炼状态有关的更新信息。只要运动属于您的应用,您的应用就可以通过此 API 接收快速数据更新。ExerciseClient 可应用于诸如跑步应用之类的应用,可允许您记录跑步数据、在设备上显示实时指标以及记录数据以进行进一步分析。

如需了解详情,请参阅活动数据和锻炼

使用合成数据进行测试

如需测试您的应用是否从健康服务接收数据更新,请手动设置您的设备以发出数据(模拟用户正在锻炼)。

如需了解详情,请参阅使用合成数据进行测试