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 修复

  • 如果未提供替换值,Metadata.populatedWithTestValues 将保留原始值。(I3ee27)
  • 仅在删除现有记录时更新更新日志。(I74a16)

版本 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 更改

  • 添加 FakeHealthConnectClient e8469
  • FakeHealthConnectClient 添加存根重写 e8469

版本 1.1

版本 1.1.0-rc02

2025 年 6 月 4 日

androidx.health.connect:connect-client:1.1.0-rc02androidx.health.connect:connect-client-external-protobuf:1.1.0-rc02androidx.health.connect:connect-client-proto:1.1.0-rc02 已发布。版本 1.1.0-rc02 包含这些提交

Bug 修复

  • 增加了对缺失设备类型的支持 (Ied486)
  • 更新了正念会话权限字符串 (I13ab5)

版本 1.1.0-rc01

2025 年 4 月 23 日

androidx.health.connect:connect-client:1.1.0-rc01androidx.health.connect:connect-client-external-protobuf:1.1.0-rc01androidx.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-beta02androidx.health.connect:connect-client-external-protobuf:1.1.0-beta02androidx.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 对 ElevationGainedRecordFloorsClimbedRecordHeartRateVariabilityRmssdRecordHeightRecordHydrationRecordLeanBodyMassRecordNutritionRecordOxygenSaturationRecordRespiratoryRateRecordRestingHeartRateRecordStepsRecordTotalCaloriesBurnedRecordVo2MaxRecordWeightRecordWheelchairPushesRecord 值的验证已替换为平台的验证。(I0f40d)

版本 1.1.0-beta01

2025 年 3 月 12 日

androidx.health.connect:connect-client:1.1.0-beta01androidx.health.connect:connect-client-external-protobuf:1.1.0-beta01androidx.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-alpha12androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha12androidx.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-alpha11androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha11androidx.health.connect:connect-client-proto:1.1.0-alpha11 已发布。版本 1.1.0-alpha11 包含这些提交

新功能

  • 更新了后台和历史读取权限,以支持 Android 13 及更早版本。

API 更改

  • HealthPermission.getReadPermissionHealthPermission.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-alpha10androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha10androidx.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-protoandroidx.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-alpha09androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha09androidx.health.connect:connect-client-proto:1.1.0-alpha09 已发布。版本 1.1.0-alpha09 包含这些提交

新功能

  • 添加了后台读取权限,受功能可用性保护。(I01036, I44db9)

版本 1.1.0-alpha08

2024 年 9 月 4 日

androidx.health.connect:connect-client:1.1.0-alpha08androidx.health.connect:connect-client-external-protobuf:1.1.0-alpha08androidx.health.connect:connect-client-proto:1.1.0-alpha08 已发布。版本 1.1.0-alpha08 包含这些提交

API 更改

  • HealthConnectClient 中设置 features 变量的默认值。(I788dc)
  • 添加了用于检查功能可用性的 API。(Iedd43)

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 更改

  • 当从个人资料用户上下文调用 #getSdkStatus 时,返回 SDK_UNAVAILABLE。(I91df3)
  • 移除 SleepStageRecord。(/If6ada)

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 更改

Bug 修复

版本 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 及其子类:DataNoDataConsentRequiredStates
  • 添加了 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 修复

  • 修复了 HealthDataSdkService 内存泄漏问题 (Ia3ba5)
  • 在 Android U 上请求权限时,始终重定向到正确的 HealthConnect 客户端。(I6415a)

版本 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
    • ExerciseLapExerciseSegment 添加到 ExerciseSessionRecord 中。
  • 读取、更改日志、插入和删除操作的周期性及每日速率限制(包括内存限制)。
  • 添加了对所有 NutritionRecord 字段的验证。
  • 添加了对 HeartRateVariabilityRmssdRecord 的验证。
  • 移除了两个已弃用的 API:HealthConnectClient#isProviderAvailableHealthConnectClient#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_TRAININGEXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAININGEXERCISE_TYPE_CALISTHENICS 来替代已移除的类型。(I7291c)
  • 添加了新 API sdkStatus(),它结合了现在已弃用的两个 API isSdkSupported()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 更改

  • ExerciseEventRecordExerciseLapRecordExerciseRepititionRecordSwimmingStrokesRecord 不再作为 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 种新的女性健康数据类型:IntermenstrualBleedingRecordMenstruationPeriodRecordMenstruationFlow.ENUMs 包括 Light、Medium、Heavy 和 Unknown。

API 更改

  • 添加了 IntermenstrualBleedingRecord (Idc470)
  • 添加了 MenstruationPeriodRecord 记录类型 (Iea545)

版本 1.0.0-alpha08

2022 年 12 月 7 日

androidx.health.connect:connect-client:1.0.0-alpha08 已发布。版本 1.0.0-alpha08 包含这些提交。

API 更改

  • 添加了 BodyWaterMassHeartRateVariabilityRmssdRecord 作为新的受支持记录类型。(Ifd58f)
  • 移除了 HipCircumferenceRecordWaistCircumferenceRecord 作为受支持的 RecordTypes。(I62fb9)
  • MenstruationFlowRecord.flowstringdef 更改为 intdefs。(I0369f)
  • 将类似枚举的 Record 字段从 Strings 更改为 Integers 以获得更好的性能。(I3b295)
  • ExerciseSessionExerciseRepetitionsSleepStage 类似枚举的字段从字符串类型更改为整数类型。(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 修复

  • 禁止 HeartRate beatsPerMinute 值小于 1 (I6052f)
  • 添加了 @JvmDefaultWithCompatibility 注解 (I8f206)

版本 1.0.0-alpha07

2022 年 10 月 24 日

androidx.health.connect:connect-client:1.0.0-alpha07 已发布。版本 1.0.0-alpha07 包含这些提交。

API 更改

  • 没有默认值的记录参数放置在有默认值的参数之前。为保持一致性,InstantZoneOffset 参数始终放置在最前面。(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 修复

  • 改进了服务连接生命周期。(If2bd5)
  • 修复了服务连接中发生异常时导致 NPE 崩溃的错误。(I13546)

版本 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 重命名为 clientRecordIdclientVersion 重命名为 clientRecordVersion。(链接)
  • 使 Metadata uid 对读者更友好,不再可为空。(链接)
  • 在质量单位中添加了磅 (链接)
  • DeletionChange.deleteUid 重命名为 uid (链接)
  • 将 Permission 重命名为 HealthPermission。这避免了与 Android 框架权限的歧义。(链接)

Bug 修复

  • 修复了能量单位卡路里不正确的回归问题 (链接)
  • 修复了少数记录类型的聚合回归问题 (链接)