作者 / Android Health 开发者关系工程师 Breana Tate
Android Health 的使命是让数十亿 Android 用户能够通过访问、存储和控制自己的健康、健身及安全数据来改善健康状况。为了进一步实现这一使命,我们为开发者提供了两个主要的 API: Health Connect 和 Wear OS 上的健康服务,并被越来越多的 Android 和 Wear OS 应用开始使用。
AI 的强大功能解锁了令人惊叹且独一无二的应用场景,但如果您想在合适的时机为用户提供最大价值,需要强大的数据基础。我们今年的更新重点在于帮助您构建这一数据基础,提供对更多数据类型的支持、访问数据的新方法,以及在您需要时可以及时地获取数据更新的其他方法。
Google Fit API 的更改
我们 近期宣布,Google Fit 开发者服务将过渡成为 Android Health 平台的核心部分。在此过程中,包括 REST API 在内的 Google Fit API 将在 2025 年 6 月 30 日之前保持可用。
Health Connect 是在 Android 手机上存储和共享健康及健身数据的推荐解决方案。自 Android 14 起,Health Connect 默认内置在系统设置中。对于 Android 14 之前的设备,用户可从 Google Play 商店下载获取。Health Connect 使您的应用能够通过单一的 API 集成与数百个应用相连。迄今为止,已有超过 500 个应用集成了 Health Connect,并为他们的用户 提供了更深入的数据洞见。您可以查看 精选应用列表,了解一些已集成 Health Connect 的应用。
我们很高兴能通过移动设备上的 Recording API 继续支持 Google Fit Android Recording API 功能。该功能使开发者能够以高效的方式记录步数、距离和卡路里。与其不同的是,移动设备上的 Recording API 默认不会将数据存储在云端,也不需要 Google 登录。该 API 旨在简化从 Google Fit Android Recording API 进行迁移的过程。请您持续关注 官方网站,更及时地获取即将发布的文档信息。
Health Connect 的新功能
Health Connect 即将增加对后台读取和历史记录读取的支持。
后台读取使开发者能够在其应用处于后台时从 Health Connect 读取数据,这意味着您可以使数据保持最新状态,而无需依赖用户打开您的应用。这与当前的行为有所不同,目前应用仅能在前台或运行前台服务时从 Health Connect 读取数据。
历史记录读取将给予用户选择权,用户可以选择授予应用访问 Health Connect 中所有历史数据的权限,而不仅仅是过去 30 天的数据。
对于后台读取和历史记录读取,用户都保有控制权。开发者必须声明这两项功能所对应的权限,并在用户批准权限请求后,才能够使用受这些权限保护的数据。即使用户已经授予了批准,他们也可以随时在 Health Connect 设置中撤销访问权限。
这两项功能都将在今年晚些时候发布。欢迎您继续关注,了解如何为您的应用添加支持!
Wear OS 上的健康服务更新
Wear OS 上的健康服务 是一系列 API,帮助您在 Wear OS 上轻松打造高效节能的健康和健身体验。
在 Wear OS 5 中,我们引入了 2 项新功能:
- 针对跑步的新数据类型
- 对去抖动目标 (debounced goals) 的支持
针对跑步的新数据类型
从 Wear OS 5 开始,健康服务将支持跑步方面的新数据类型。这些数据类型有助于提供更多关于跑步姿势和效率的深入见解。
全新高级跑步指标完整列表如下:
- 触地时间
- 步幅
- 垂直幅度
- 垂直比例
在使用 Wear OS 上的健康服务支持的所有数据类型时,请您务必 检查运动功能,确保您的应用仅使用受该设备支持的指标,从而为用户构建更流畅的体验。这一点对于 Wear OS 尤其重要,因为 Wear OS 拥有强大的设备生态系统,消费者有很多选择,但这些设备并不总是支持相同的指标。
// Checking if the device supports the RUNNING exercise and confirming the
// data types that are supported.
suspend fun getExerciseCapabilities(): ExerciseTypeCapabilities? {
val capabilities = exerciseClient.getCapabilitiesAsync().await()
return if (ExerciseType.RUNNING in capabilities.supportedExerciseTypes) {
capabilities.getExerciseTypeCapabilities(ExerciseType.RUNNING)
} else {
null
}
}
. . .
// Checking whether the data types that we want to use are supported by
// the RUNNING exercise on this device.
val dataTypes = setOf(
DataType.HEART_RATE_BPM_STATS,
DataType.CALORIES_TOTAL,
DataType.DISTANCE_TOTAL,
DataType.GROUND_CONTACT_TIME,
DataType.VERTICAL_OSCILLATION
).intersect(capabilities.supportedDataTypes)
△ 使用 Wear OS 上的健康服务检查运动功能
为了简化这一过程,我们引入了 传感器面板,该面板从 Android Studio Koala Drop 开始可用,目前已推出 Canary 版。您可以使用此面板通过多种设备功能测试您的应用,模拟心率或距离等指标不可用的情况。
△ 健康服务传感器面板
- 传感器面板
- 传感器面板目前已推出 Canary 版
对去抖动目标的支持
其次,Wear OS 上的健康服务即将支持瞬时指标的去抖动目标 (debounced goals)。这些指标包括心率、距离和速度等,用户希望在运动过程中将这些指标维持在特定的阈值或范围内。
去抖动目标 (debounced goals) 可以防止同一事件在短时间内因为条件符合就被多次触发。而现在,只有当阈值连续超过一定秒数 (可配置) 后,才会触发事件。您还可以阻止目标注册后立即触发事件。
这项支持源于两种新方法,旨在根据瞬时指标更合理地控制 目标提醒 时机:阈值持续时间 和 初始延迟:
- 阈值持续时间 是指在健康服务发送提醒事件之前,用户需要达到指定阈值的不间断时长。
- 初始延迟 是指从目标注册到应用收到通知之间必须经过的时长。
如果您的应用支持用户设置健身目标或指标,这些功能便可共同减少误报和重复提醒用户的次数。
_ | 阈值持续时间 | 初始延迟 |
---|---|---|
定义 | 在健康服务发送提醒事件之前,用户需要达到指定阈值的不间断时长。 | 从目标注册到应用收到通知之间必须经过的时长。 |
目的 | 防止误报。 | 防止反复通知用户。 |
计数器启动 | 用户一旦超过指定阈值立即启动。 | 监控请求一经设置立即启动。 |
△ 阈值持续时间和初始延迟之间的差异
一个常见的去抖动目标 (debounced goals) 用例涉及心率区间。在运动过程中,尤其是进行高强度有氧运动时,心率会不断波动。如果不支持去抖动功能,应用可能会在短时间内接收到多次提醒,例如每当用户的心率高于或低于目标范围时。
通过引入初始延迟,您可以通知健康服务仅在经过指定时间周期后发送目标提醒。您可以将这一周期视为调整期。而通过引入阈值持续时间,您可以进一步自定义,指定必须在指定阈值内 (或阈值外) 持续的时间量,目标才会被激活。在实际应用中,这就好比等待用户的心率超出目标范围 15 秒钟后,您的应用才会提醒他们增加或减少运动强度。
欢迎您查看技术会议 “使用 Android Health 打造自适应体验 (Building Adaptable Experiences with Android Health)”,了解关于这一功能的实际应用!
您应用的训练伙伴
健康与健身开发者中心 是您构建 Android 健康与健身应用的一站式服务平台!欢迎您访问该网站,获取文档、设计灵感、案例研究等资源,并学习如何在移动设备和 Wear OS 上构建应用。
非常期待看到您在 Android 上不断构建出色的健康与健身体验!