健康数据共享
最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 7 月 16 日 | - | 1.1.0-rc03 | - | - |
申请对数据类型的访问权限
为了便于我们加强对用户隐私和安全的保护力度,与 Health Connect 集成的开发者必须声明其应用所用数据类型的读取和/或写入权限。开发者必须根据应用的用途,为所使用的数据类型添加有效用例。如需了解详情,请参阅为健康类应用声明表单提供信息和 Health Connect by Android 权限。
声明依赖项
如需添加 Health Connect 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库。
在应用或模块的 build.gradle
文件中添加所需工件的依赖项:
Groovy
dependencies { // Use to implement health connects implementation "androidx.health.connect:connect-client:1.1.0-rc03" }
Kotlin
dependencies { // Use to implement health connects implementation("androidx.health.connect:connect-client:1.1.0-rc03") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
健康数据共享测试版本 1.0
版本 1.0.0-alpha03
2025 年 4 月 9 日
发布了 androidx.health.connect:connect-testing:1.0.0-alpha03
。版本 1.0.0-alpha03 中包含这些提交内容。
bug 修复
版本 1.0.0-alpha02
2025 年 2 月 26 日
发布了 androidx.health.connect:connect-testing:1.0.0-alpha02
。版本 1.0.0-alpha02 中包含这些提交内容。
API 变更
- 引入
MetadataTestHelper#populatedWithTestValues
以在androidx.health.connect:connect-client:1.1.0-alpha12
(I1f7f1) 中引入元数据更改后在测试中使用 - 移除了
connect-testing
中的ExperimentalTestingApi
注释 (I97a57) - 为
FakeHealthConnectClient
中的记录和更改添加了完整桩 (I15a4c)
版本 1.0.0-alpha01
2024 年 9 月 4 日
发布了 androidx.health.connect:connect-testing:1.0.0-alpha01
。版本 1.0.0-alpha01 中包含这些提交内容。
新功能
Health Connect 测试库可简化自动化测试的创建。您可以使用此库来验证应用的行为,并验证应用是否能正确响应难以手动测试的异常情况。
您可以使用该库创建本地单元测试,这些测试通常用于验证应用中与健康数据共享客户端互动的类的行为。
该库的入口点是 FakeHealthConnectClient
类,您可以在测试中使用该类来替换 HealthConnectClient
。它具有以下功能:
- 记录的内存中表示形式,因此您可以插入、移除、删除和读取记录
- 变更令牌的生成和变更跟踪
- 记录和变更的分页
- 支持使用桩的聚合响应
- 允许任何函数抛出异常
- 可用于模拟权限检查的
FakePermissionController
API 变更
版本 1.1
版本 1.1.0-rc03
2025 年 7 月 16 日
发布了 androidx.health.connect:connect-client:1.1.0-rc03
、androidx.health.connect:connect-client-external-protobuf:1.1.0-rc03
和 androidx.health.connect:connect-client-proto:1.1.0-rc03
。版本 1.1.0-rc03 中包含这些提交内容。
bug 修复
- 修复了
IllegalArgumentException
,以实现跨 DST 边界的聚合。(Ic9e4f)
版本 1.1.0-rc02
2025 年 6 月 4 日
发布了 androidx.health.connect:connect-client:1.1.0-rc02
、androidx.health.connect:connect-client-external-protobuf:1.1.0-rc02
和 androidx.health.connect:connect-client-proto:1.1.0-rc02
。版本 1.1.0-rc02 中包含这些提交内容。
bug 修复
版本 1.1.0-rc01
2025 年 4 月 23 日
发布了 androidx.health.connect:connect-client:1.1.0-rc01
、androidx.health.connect:connect-client-external-protobuf:1.1.0-rc01
和 androidx.health.connect:connect-client-proto:1.1.0-rc01
。版本 1.1.0-rc01 中包含这些提交内容。
API 变更
- 为开发者添加了正念功能可用性标志。(I936a8)
版本 1.1.0-beta02
2025 年 4 月 9 日
发布了 androidx.health.connect:connect-client:1.1.0-beta02
、androidx.health.connect:connect-client-external-protobuf:1.1.0-beta02
和 androidx.health.connect:connect-client-proto:1.1.0-beta02
。版本 1.1.0-beta02 中包含这些提交内容。
新功能
- 添加了实验性个人健康记录 (PHR) API,用于读写基于快速医疗互操作性资源 (FHIR®) 格式的医疗数据。PHR API 包括:
- 一个
FEATURE_PERSONAL_HEALTH_RECORD
常量,用于通过功能可用性 API 检查 PHR 是否可用。 - 用于编写医疗数据源和记录的应用的 API。
- 用于应用读取基于用户授予的权限的医疗数据源和记录的 API。
- 一个
- 添加了实验性正念会话记录 API (I51c13),包括:
- 用于写入正念练习数据的应用的 API。
- 用于供应用读取正念练习会话数据(基于用户授予的权限)的 API。
bug 修复
- 对于 Android U 及更高版本,Jetpack 对
ElevationGainedRecord
、FloorsClimbedRecord
、HeartRateVariabilityRmssdRecord
、HeightRecord
、HydrationRecord
、LeanBodyMassRecord
、NutritionRecord
、OxygenSaturationRecord
、RespiratoryRateRecord
、RestingHeartRateRecord
、StepsRecord
、TotalCaloriesBurnedRecord
、Vo2MaxRecord
、WeightRecord
和WheelchairPushesRecord
值的验证已替换为平台的验证。(I0f40d)
版本 1.1.0-beta01
2025 年 3 月 12 日
发布了 androidx.health.connect:connect-client:1.1.0-beta01
、androidx.health.connect:connect-client-external-protobuf:1.1.0-beta01
和 androidx.health.connect:connect-client-proto:1.1.0-beta01
。版本 1.1.0-beta01 中包含这些提交内容。
bug 修复
- 针对所有 Android 版本中的所有汇总类型启用计算。(I8edf)
版本 1.1.0-alpha12
2025 年 2 月 26 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha12
、androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha12
和 androidx.health.connect:connect-client-proto:1.1.0-alpha12
。版本 1.1.0-alpha12 中包含这些提交内容。
API 变更
- 将元数据构造函数设为内部函数 (I1fb8f
- 移除了功能可用性 API 的实验性注解。(I5b54f)
- 引入了元数据工厂方法 (I8418b)
- 在创建元数据对象时,将录制方法设为必需 (I3a13e)
- 在创建设备对象时强制指定设备类型 (Ibc325)
bug 修复
- 修复了计划锻炼步骤和模块中缺少说明的问题。(I84039)
- 更新了血压值限制的 Java 文档。(I8d3d4)
- 对于 Android U 及更高版本,Jetpack 对血压记录值的验证已替换为平台的验证。(I08bf5)
- 为 Android U 及更高版本上的分桶结果添加了贡献数据来源。(Ie7651)
版本 1.1.0-alpha11
2025 年 1 月 15 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha11
、androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha11
和 androidx.health.connect:connect-client-proto:1.1.0-alpha11
。版本 1.1.0-alpha11 中包含这些提交内容。
新功能
- 更新了后台读取和历史记录读取权限,以支持 Android 13 及更低版本。
API 变更
- 为
HealthPermission.getReadPermission
和HealthPermission.getWritePermission
添加了内联具体化重载 (I59a2e)
bug 修复
- 移除了旧版权限方法 (Ifd080)
- 此库现在使用类型使用的 JSpecify nullness 注释。Kotlin 开发者应使用以下编译器实参来强制执行正确用法:
-Xjspecify-annotations=strict
(这是 Kotlin 编译器从 2.1.0 版开始的默认实参)。(Iaf73a、b/326456246) - 修正了
HealthPermission.READ_HEALTH_DATA_HISTORY
的文档,具体来说,指出了在尝试读取单个数据点时,没有此权限的读取才会失败。(Id5b5a)
版本 1.1.0-alpha10
2024 年 10 月 16 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha10
、androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha10
和 androidx.health.connect:connect-client-proto:1.1.0-alpha10
。版本 1.1.0-alpha10 中包含这些提交内容。
新功能
- 添加了
SkinTemperature
种汇总类型。(Ibe123) - 添加了
FEATURE_PLANNED_EXERCISE
常量 (Ie02a3) - 添加了历史记录读取权限。(I5cf41)
- 添加了训练计划 API (If5be1)
- 添加了
SkinTemperatureRecord
API。(I5605d)
安全修复
- 自此变更起,androidx 会针对 protobuf 4.28.2 进行编译,以解决 CVE-2024-7254。将对
androidx.health:connect:connect-client-proto
和androidx.health:connect:connect-client-external-protobuf
的依赖项升级到最新的 1.1.0-alpha10,以解决漏洞风险。
版本 1.1.0-alpha09
2024 年 9 月 18 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha09
、androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha09
和 androidx.health.connect:connect-client-proto:1.1.0-alpha09
。版本 1.1.0-alpha09 中包含这些提交内容。
新功能
版本 1.1.0-alpha08
2024 年 9 月 4 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha08
、androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha08
和 androidx.health.connect:connect-client-proto:1.1.0-alpha08
。版本 1.1.0-alpha08 中包含这些提交内容。
API 变更
bug 修复
- 当
HealthConnectManager
在 U+ 5802f 中为 null 时,在HealthConnectClient.getSdkStatus()
中返回SDK_UNAVAILABLE
- 向
RecordClasses
aa5dc 添加了toString
替换项 - 移除了对新平台 API 访问权限的手动概述,因为在使用 AGP 7.3 或更高版本(例如 R8 版本 3.3)的 R8 时,以及在使用 AGP 8.1 或更高版本(例如 D8 版本 8.1)的所有 build 时,这种情况都会通过 API 建模自动发生。建议未使用 AGP 的客户更新到 D8 版本 8.1 或更高版本。如需了解更多详情,请参阅这篇文章。(If6b4c、b/345472586)
版本 1.1.0-alpha07
2024 年 1 月 10 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha07
。版本 1.1.0-alpha07 中包含这些提交内容。
API 变更
bug 修复
- 在绑定失败时抛出
RemoteException
,而不是IllegalStateException
。(Id2233)
版本 1.1.0-alpha06
2023 年 10 月 18 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha06
。版本 1.1.0-alpha06 中包含这些提交内容。
API 变更
- 将
recordingMethod
定义设为公开。(I401fb)
bug 修复
- 添加了锻炼路线文档,其中指定了位置信息应在会话结束时间之前获取。(0e51e6)
版本 1.1.0-alpha05
2023 年 10 月 4 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha05
。版本 1.1.0-alpha05 中包含这些提交内容。
API 变更
- 添加了可导航至健康数据共享数据管理界面的 intent。(Ibf591)
- 移除了
AggregationResult
中已废弃的方法。(Idbda9) - 添加了用于创建
ReadRecordsRequest
以及删除和读取记录的便捷 API,并使用具体化的记录类型。(If58a5)
bug 修复
- 修复了 Android 14 中的一个 bug,该 bug 会导致将 null 营养字段作为
Double.MIN_VALUE
返回。(1aa1d1) - 修复了 Android 14 中的一个 bug,该 bug 会导致按月/年周期进行汇总时,由于各个时间段的开始/结束时间相同而在响应中抛出异常。(281313)
版本 1.1.0-alpha04
2023 年 9 月 6 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha04
。版本 1.1.0-alpha04 中包含这些提交内容。
API 变更
- 仅限 Java:将
ChangesResponse
上的getHasMore()
字段重命名为hasMore()
。(I80695) - 在各个 Android 版本中统一了
HealthPermissionsRequestContract#createIntent
检查。该合约会检查所有权限是否都是与健康相关的权限。(I143fc)
bug 修复
- 修复了当使用包含空位置列表的
ExerciseRoute
创建ExerciseSessionRecord
时抛出的异常。(I45c16) - 更新了用于读取睡眠会话的
SleepSessionRecord
文档和示例代码。(Idf0de)
版本 1.1.0-alpha03
2023 年 7 月 26 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha03
。版本 1.1.0-alpha03 中包含这些提交内容。
新功能
- 用于读取和写入锻炼路线的 API:
- 已将“
ExerciseRouteResult
”添加到“ExerciseSessionRecord
”中 - 添加了
ExerciseRouteRequestContract
- 已将“
API 变更
- 添加了
ExerciseRouteResult
及其子类:Data
、NoData
和ConsentRequiredStates
。 - 添加了
ExerciseRoute
作为独立类,用于保存路线的位置数据。(I22eed) - 添加了
PERMISSION_WRITE_EXERCISE_ROUTE
。(I92fc4) - 添加了
ExerciseRouteRequestContract
,添加了HealthPermissionsRequestContract
。(Ief0e5)
bug 修复
- 修复了千焦耳能量的构造 (Ie8791)
版本 1.1.0-alpha02
2023 年 6 月 21 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha02
。版本 1.1.0-alpha02 中包含这些提交内容。
bug 修复
版本 1.1.0-alpha01
2023 年 6 月 7 日
发布了 androidx.health.connect:connect-client:1.1.0-alpha01
。此版本是在内部分支中开发的。
新功能
- 支持 Android 14 框架版本的健康数据共享。此 SDK 是 Android 14 的前提条件。如果没有该权限,应用将无法在 Android 14 上与“健康数据共享”集成。
- 添加了用于记录元数据的记录方法。
API 变更
- 会话 API 变更:
- 在
SleepSessionRecord
中添加了各种睡眠阶段,并移除了SleepStageRecord
。 - 将
ExerciseLap
和ExerciseSegment
添加到了ExerciseSessionRecord
中。
- 在
- 读取、更新日志、插入和删除操作的周期性速率限制和每日速率限制(包括内存限制)。
- 为所有
NutritionRecord
字段添加了验证。 - 为
HeartRateVariabilityRmssdRecord
添加了验证。 - 移除了两个已废弃的 API:
HealthConnectClient#isProviderAvailable
和HealthConnectClient#isApiSupported
。
bug 修复
- 所有单位类型的固定单位相等性,相等性不再取决于用于单位初始化的类型。例如,Mass.grams(1000) 现在等于 Mass.kilograms(1)。
版本 1.0
版本 1.0.0-alpha11
2023 年 2 月 22 日
发布了 androidx.health.connect:connect-client:1.0.0-alpha11
。版本 1.0.0-alpha11 中包含这些提交内容。
API 变更
- 添加了用于打开 Health Connect 的 intent。(Ic8055)
- 移除了某些锻炼类型。使用
EXERCISE_TYPE_STRENGTH_TRAINING
、EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING
或EXERCISE_TYPE_CALISTHENICS
代替已移除的类型。(I7291c) - 添加了新的 API
sdkStatus()
,它结合了两个现已废弃的 APIisSdkSupported()
和isProviderAvailable()
的功用。(Iac89d) - 将接受
providerPackageName
的 API 更改为接受单个字符串,而不是列表。(I67e0f)
版本 1.0.0-alpha10
2023 年 1 月 25 日
发布了 androidx.health.connect:connect-client:1.0.0-alpha10
。版本 1.0.0-alpha10 中包含这些提交内容。
API 变更
ExerciseEventRecord
、ExerciseLapRecord
、ExerciseRepititionRecord
和SwimmingStrokesRecord
不再是受支持的RecordTypes
。它们无法再写入HealthConnect
或从中读取。从HealthConnect
集成中移除对这些数据类型的任何引用。(If7ca2)- 更改了权限 API,以接受采用新字符串格式的权限。这项变更还需要将权限声明更改为标准 Android 权限格式。(Ib0a2f)
版本 1.0.0-alpha09
2023 年 1 月 11 日
发布了 androidx.health.connect:connect-client:1.0.0-alpha09
。版本 1.0.0-alpha09 中包含这些提交内容。
新功能
- 为 Health Connect 添加了 2 个新的女性健康数据类型:
IntermenstrualBleedingRecord
和MenstruationPeriodRecord
。MenstruationFlow.ENUMs
为“少”“中”“多”和“未知”。
API 变更
版本 1.0.0-alpha08
2022 年 12 月 7 日
发布了 androidx.health.connect:connect-client:1.0.0-alpha08
。版本 1.0.0-alpha08 中包含这些提交内容。
API 变更
- 将
BodyWaterMass
、HeartRateVariabilityRmssdRecord
添加为新的受支持记录类型。(Ifd58f) - 将
HipCircumferenceRecord
、WaistCircumferenceRecord
从受支持的RecordTypes
中移除。(I62fb9) - 将
MenstruationFlowRecord.flow
从stringdef
更改为了intdefs
。(I0369f) - 将包含
Strings
的枚举类记录字段更改为了Integers
,以提升性能。(I3b295) - 将
ExerciseSession
、ExerciseRepetitions
、SleepStage
枚举类字段从字符串类型更改为了整数类型。(Id32a9) - 重命名了
ExerciseSessionRecord.ACTIVE_TIME_TOTAL->EXERCISE_DURATION_TOTAL
。(I5d7bd) - 向
CervicalMucus
枚举添加了“Unusual”。将“Clear”重命名为“Eggwhite”,以提高明确性。将CervicalMucus#appearance
和 #sensation 从StringDefs
更改为了 IntDefs。(I3ac51) DeviceTypes
枚举的StringDef
现在已移至“Device”下的IntDefs
。(I3abf3)- 添加了
HealthConnectClient.isApiSupported()
,这会在没有兼容实现的 SDK 版本中返回 false。重命名了HealthConnectClient.isAvailable->isProviderAvailable
。(I3674e)
bug 修复
版本 1.0.0-alpha07
2022 年 10 月 24 日
发布了 androidx.health.connect:connect-client:1.0.0-alpha07
。版本 1.0.0-alpha07 中包含这些提交内容。
API 变更
- 不带默认值的记录参数位于具有默认值的参数之前。为保持一致,
Instant
和ZoneOffset
参数会始终位于最前面。(Id618c) - 已将
HealthConnectClient.getOrCreate#packageNames
重命名为providerPackageNames
。(Id81e4)
bug 修复
- 添加了记录字段值验证。如果提供的值超出合理的范围,则严重错误的值将抛出
IllegalArgumentExceptions
。(Ie171d) - 在相关场景中,验证记录开始时间早于结束时间。(I02460)
版本 1.0.0-alpha06
2022 年 10 月 5 日
发布了 androidx.health.connect:connect-client:1.0.0-alpha06
。版本 1.0.0-alpha06 中包含这些提交内容。
bug 修复
版本 1.0.0-alpha05
2022 年 9 月 21 日
发布了 androidx.health.connect:connect-client:1.0.0-alpha05
。版本 1.0.0-alpha05 中包含这些提交内容。
API 变更
- 已将
Metadata.uid
重命名为Metadata.id
,并在相关的 CRUD API 中统一使用了术语recordId
。(I3d1d2) - 将
PermissionController.createRequestPermissionActivityContract
设为静态方法,而不是实例方法。已重命名为PermissionController.createRequestPermissionResultContract
。(Icd2fe) - 为
BloodGlucoseRecord
添加了BloodGlucose
单位类型 (I97678) - 已将
MenstruationRecord
重命名为MenstruationFlowRecord
。(I3b88e)
bug 修复
- 修复了不从客户端进程传播前台统计信息的意外行为。(Ifb44c)
版本 1.0.0-alpha04
2022 年 8 月 24 日
发布了 androidx.health.connect:connect-client:1.0.0-alpha04
。版本 1.0.0-alpha04 中包含这些提交内容。
迁移到“androidx.health.connect”
从 1.0.0-alpha04 开始,androidx.health:health-connect-client
已迁移到 androidx.health.connect:connect-client
。如需查看旧版 Health Connect,请访问 androidx.health 页面。
如需迁移,只需将依赖项导入从 androidx.health:health-connect-client:1.0.0-alpha03
更改为 androidx.health.connect:connect-client:1.0.0-alpha04
即可。
新功能
- 添加了适用于 API 调用的可选内置调试日志(链接)
API 变更
- 已将 Metadata
clientId
重命名为clientRecordId
,并将clientVersion
重命名为clientRecordVersion
。(链接) - 使 Metadata uid 更便于读取器读取,今后不可为 null。(链接)
- 向质量单位中添加了磅(链接)
- 已将
DeletionChange.deleteUid
重命名为 uid(链接) - 将 Permission 重命名为 HealthPermission。这避免了与 Android 框架权限混淆。(链接)
bug 修复