作者 / Health & Home 合作伙伴工程技术撰稿人 Brenda Shaw
在 Google,我们致力于帮助开发者打造卓越的健康和健身体验。这一承诺的核心是 Health Connect,一个允许健康和健身应用存储和共享相同设备端数据的 Android 平台。对于运行 Android 14 或预装 APK 的 Android 设备,其 "设置" 中默认已安装 Health Connect。对于 Android 14 之前的设备,可以从 Google Play 商店下载 Health Connect。
近期,我们发布了一系列 Health Connect 的重要更新,包括 Jetpack SDK Beta 版、新的数据类型和新的权限。这些更新将有助于实现更丰富、更有洞察力的应用功能。
Jetpack SDK Beta 版
Jetpack SDK Beta 版现已发布。自初始版本发布以来,我们一直致力于提高其数据完整性,尤其注重丰富与每个数据点相关的元数据。
在最新的 SDK 中,我们引入了两项关键更改,旨在确保更丰富的元数据,并为您和您的用户解锁新的可能性:
指定记录方式
为了提供更准确、更具洞察力的数据,Beta 版要求在将数据写入 Health Connect 时,必须从四种记录方式中指定一种。这确保了更高的数据清晰度、增强的数据分析和改善的用户体验:
如果您的应用当前在创建记录时未设置元数据:
之前
StepsRecord( count = 888, startTime = START_TIME, endTime = END_TIME,) // error: metadata is not provided
之后
StepsRecord( count = 888, startTime = START_TIME, endTime = END_TIME, metadata = Metadata.manualEntry())
如果您的应用当前在创建记录时调用 Metadata 构造函数:
之前
StepsRecord( count = 888, startTime = START_TIME, endTime = END_TIME, metadata = Metadata( clientRecordId = "client id", recordingMethod = RECORDING_METHOD_MANUAL_ENTRY, ), // error: Metadata constructor not found)
之后
StepsRecord( count = 888, startTime = START_TIME, endTime = END_TIME, metadata = Metadata.manualEntry(clientRecordId = "client id"),)
必须指定设备类型
创建设备对象时,您需要指定设备类型。自动 (RECORDING_METHOD_AUTOMATICALLY_RECORDED) 或主动 (RECORDING_METHOD_ACTIVELY_RECORDED) 记录的数据将需要设备对象。
🔗 RECORDING_METHOD_AUTOMATICALLY_RECORDED
https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/metadata/Metadata#RECORDING_METHOD_AUTOMATICALLY_RECORDED%28%29
🔗 RECORDING_METHOD_ACTIVELY_RECORDED
https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/metadata/Metadata#RECORDING_METHOD_ACTIVELY_RECORDED%28%29
之前
Device() // error: type not provided
之后
Device(type = Device.Companion.TYPE_PHONE)
我们相信,这些更新将极大提高应用中的数据质量,并帮助您创造更具洞察力的用户体验。我们建议您探索 Jetpack SDK Beta 版,查看更新后的 Metadata 页面,并熟悉这些更改。
🔗 Jetpack SDK Beta 版
https://developer.android.com/jetpack/androidx/releases/health-connect
🔗 Metadata 页面
https://developer.android.com/health-and-fitness/guides/health-connect/develop/metadata
新的后台读取权限
为了提供更丰富且后台驱动的健康和健身体验,同时维持用户对应用的信任,Health Connect 现在具有专用的后台读取权限。
在用户明确同意的前提下,此权限允许您的应用在后台运行时访问 Health Connect 数据。用户保留完全控制权,可以随时通过 Health Connect 设置来管理或撤销此权限。
新的后台读取权限让您的应用即使在后台运行,也能读取健康数据。请在您的清单文件中声明以下权限:
<application> <uses-permission android:name="android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND" />...</application>
🔗 后台读取权限
https://developer.android.com/health-and-fitness/guides/health-connect/develop/read-data#background-read-example
使用 Feature Availability API 检查用户设备上的 Health Connect 版本是否具有可用的后台读取功能。
🔗 Feature Availability API
https://developer.android.com/health-and-fitness/guides/health-connect/develop/feature-availability
允许应用读取历史数据
默认情况下,当授予读取权限时,您的应用可以访问自初始权限授予之日起 30 天内来自其他应用的历史数据。为了支持访问超出这 30 天窗口期的数据,Health Connect 引入了 PERMISSION_READ_HEALTH_DATA_HISTORY 权限。这样,您的应用可以为新用户提供健康和保健历史记录的全面概览。
🔗 PERMISSION_READ_HEALTH_DATA_HISTORY
https://developer.android.com/health-and-fitness/guides/health-connect/develop/read-data#older-than-30-days-restriction
用户对于后台读取和历史记录读取都保有控制权。这两种功能都要求开发者声明相应的权限,开发者访问用户数据之前必须获得用户授权。即便用户已经授予了权限,也可以随时在 Health Connect 设置中撤销访问权限。
🔗 声明相应的权限
https://developer.android.com/health-and-fitness/guides/health-connect/publish/declare-access
其他数据访问权限和类型
Health Connect 现在提供扩展的数据类型,使开发者能够构建更丰富的用户体验并提供更深入的见解。请查看以下新数据类型:
锻炼路线允许用户与其他应用共享锻炼路线,以无缝同步锻炼数据。通过允许用户共享所有或单一路线,用户相关的锻炼活动和锻炼地图将与其选择的健身应用同步。
皮肤温度数据类型测量体表温度,以获得有关睡眠质量、生殖健康和潜在疾病发作的洞察。
Health Connect 还提供计划的锻炼数据类型,这样,训练应用就能够编写训练计划,而锻炼应用则可以读取这些训练计划。通过回溯记录的锻炼 (训练) 来进行个性化的表现分析,进而帮助用户实现其训练目标。也可以访问精细的锻炼数据,包括会话、区块和步骤,以进行全面的表现分析和个性化反馈。
🔗 锻炼路线
https://developer.android.com/health-and-fitness/guides/health-connect/develop/exercise-routes
🔗 皮肤温度
https://developer.android.com/health-and-fitness/guides/health-connect/develop/skin-temperature
🔗 计划的锻炼
https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/PlannedExerciseSessionRecord
这些新的数据类型能帮助开发者创建更具互联性和洞察力的健康和健身应用,为用户提供全面的健康状态概览。
如要详细了解有关所有新 API 和错误修复的信息,请查看完整的版本说明。
🔗 完整的版本说明
https://developer.android.com/jetpack/androidx/releases/health-connect
即刻体验 Health Connect Jetpack SDK
无论您是刚开始使用 Health Connect,还是想要运用其最新功能,都可以通过多种方式了解更多信息并提出您的反馈。
订阅我们的简报:及时获取 Google 健康与健身的最新消息、公告和资源。订阅我们的健康与健身 Google 开发者简报,即可直接在您的邮箱接收最新更新内容。
查看我们的 Health Connect 开发者指南:健康与健身开发者中心是您在 Android 上构建健康与健身应用的一站式服务,其中包括了强大全面的 Health Connect 入门指南。
报告问题:遇到错误或技术问题?您可以通过问题跟踪器直接向我们的团队报告,以便我们进行调查并解决问题。您也可以使用问题跟踪器请求新功能或与我们分享反馈。
🔗 订阅我们的简报
https://services.google.com/fb/forms/HealthDevNewsSignup
🔗 查看我们的 Health Connect 开发者指南
https://developer.android.com/health-and-fitness/guides/health-connect
🔗 报告问题
https://issuetracker.google.com/issues/new?component=1676744&template=2072671
期待看到您的杰作!也欢迎您关注 "Android 开发者" 微信公众号,及时了解更多开发技术和产品更新等资讯动态!