Health Connect
最新更新 | 稳定版 | 发布候选版本 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 6 月 4 日 | - | 1.1.0-rc02 | - | - |
请求访问数据类型
为帮助我们加强用户隐私和安全,与 Health Connect 集成的开发者必须声明其应用所用数据类型的读取和/或写入权限。开发者必须根据应用用途为所用数据类型提供有效用例。如需了解详情,请访问提供健康应用声明表单信息和适用于 Android 权限的 Health Connect。
声明依赖项
如需添加对 health 的依赖项,您必须将 Google Maven 代码库添加到您的项目中。如需了解详情,请参阅Google 的 Maven 代码库。
在应用的 build.gradle
文件或模块中添加所需工件的依赖项
Groovy
dependencies { // Use to implement health connects implementation "androidx.health.connect:connect-client:1.1.0-rc02" }
Kotlin
dependencies { // Use to implement health connects implementation("androidx.health.connect:connect-client:1.1.0-rc02") }
如需详细了解依赖项,请参阅添加构建依赖项。
反馈
您的反馈有助于 Jetpack 变得更好。如果您发现新问题或有改进此库的建议,请告诉我们。在创建新问题之前,请查看此库中的现有问题。您可以点击星标按钮,为现有问题添加您的投票。
如需了解详情,请参阅问题跟踪器文档。
Health Connect 测试版本 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 测试库简化了自动化测试的创建。您可以使用此库验证应用的的行为,并验证它是否能正确响应难以手动测试的罕见情况。
您可以使用此库创建本地单元测试,这些测试通常用于验证应用中与 Health Connect 客户端交互的类的行为。
此库的入口点是 FakeHealthConnectClient
类,您可以在测试中用它来替换 HealthConnectClient
。它具有以下功能:
- 记录的内存表示,因此您可以插入、移除、删除和读取它们
- 变更令牌的生成和变更跟踪
- 记录和更改的分页
- 聚合响应支持存根
- 允许任何函数抛出异常
- 一个
FakePermissionController
,可用于模拟权限检查
API 更改
版本 1.1
版本 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 更改
- 使 Metadata 构造函数内部化 (I1fb8f
- 移除了功能可用性 API 的实验性注解。(I5b54f)
- 引入 Metadata 工厂方法 (I8418b)
- 创建 Metadata 对象时,使记录方法成为强制性要求 (I3a13e)
- 创建 Device 对象时,使设备类型成为强制性要求 (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 空值注解,它们是类型用法。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 修复
- 当 U+ 中的
HealthConnectManager
为 null 时,在HealthConnectClient.getSdkStatus()
中返回SDK_UNAVAILABLE
5802f - 将
toString
重写添加到RecordClasses
aa5dc - 取消了对新平台 API 访问的手动概要,因为在使用 AGP 7.3 或更高版本(例如 R8 3.3 版)的 R8 进行 API 建模时,以及在使用 AGP 8.1 或更高版本(例如 D8 8.1 版)的所有构建中,这都会自动发生。建议不使用 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 更改
- 添加了导航到 Health Connect 数据管理屏幕的意图。(Ibf591)
- 移除了
AggregationResult
中已弃用的方法。(Idbda9) - 添加了便捷 API,用于创建
ReadRecordsRequest
,以及删除和读取记录,并带有实化记录类型。(If58a5)
Bug 修复
- 修复了 Android 14 中一个错误,该错误导致营养字段为空时返回
Double.MIN_VALUE
。(1aa1d1) - 修复了 Android 14 中一个错误,该错误导致按月/年周期聚合时,由于存储桶具有相同的开始/结束时间,响应中抛出异常。(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
已发布。此版本是在内部分支中开发的。
新功能
- 支持 Health Connect 的 Android 14 框架版本。此 SDK 是 Android 14 的先决条件。没有它,应用将无法在 Android 14 上与 Health Connect 集成。
- 添加了用于记录元数据的记录方法。
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
包括 Light、Medium、Heavy 和 Unknown。
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) - 将类似枚举的 Record 字段从
Strings
更改为Integers
以获得更好的性能。(I3b295) - 将
ExerciseSession
、ExerciseRepetitions
、SleepStage
类似枚举的字段从字符串类型更改为整数类型。(Id32a9) - 将
ExerciseSessionRecord.ACTIVE_TIME_TOTAL
重命名为EXERCISE_DURATION_TOTAL
。(I5d7bd) - 在
CervicalMucus
枚举中添加“不寻常”项。将“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 对读者更友好,不再可为空。(链接)
- 在质量单位中添加了磅 (链接)
- 将
DeletionChange.deleteUid
重命名为 uid (链接) - 将 Permission 重命名为 HealthPermission。这避免了与 Android 框架权限的歧义。(链接)
Bug 修复