健康数据共享
最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 1 月 15 日 | - | - | - | 1.1.0-alpha11 |
申请对数据类型的访问权限
为了便于我们加强对用户隐私和安全的保护力度,与 Health Connect 集成的开发者必须针对其应用使用的数据类型声明读取和/或写入权限。开发者必须根据应用的用途为所用数据类型添加有效用例。如需了解详情,请参阅为健康类应用声明表单提供信息和 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-alpha08" }
Kotlin
dependencies { // Use to implement health connects implementation("androidx.health.connect:connect-client:1.1.0-alpha08") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
Health Connect Testing 版本 1.0
版本 1.0.0-alpha01
2024 年 9 月 4 日
发布了 androidx.health.connect:connect-testing:1.0.0-alpha01
。版本 1.0.0-alpha01 包含这些提交内容。
新功能
Health Connect Testing 库简化了自动化测试的创建。您可以使用此库来验证应用的行为,并验证应用是否对难以手动测试的异常情况做出了正确响应。
您可以使用该库创建本地单元测试,这些测试通常用于验证应用中与 Health Connect 客户端交互的类的行为。
该库的入口点是 FakeHealthConnectClient
类,您可以在测试中使用该类来替换 HealthConnectClient
。它具有以下特点:
- 记录的内存表示法,以便您插入、移除、删除和读取记录
- 更改令牌的生成和更改跟踪
- 记录和更改的分页
- 支持使用桩生成汇总回答
- 允许任何函数抛出异常
- 可用于模拟权限检查的
FakePermissionController
API 变更
版本 1.1
版本 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 annotations,即类型使用注解。Kotlin 开发者应使用以下编译器参数来强制执行正确的用法:
-Xjspecify-annotations=strict
、-Xtype-enhancement-improvements-strict-mode
(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)
- 添加了 Training plans 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+ 5802f 中的
HealthConnectManager
为 null 时,在HealthConnectClient.getSdkStatus()
中返回SDK_UNAVAILABLE
- 向
RecordClasses
添加了toString
替换项 aa5dc - 移除了手动说明对新平台 API 的访问权限,因为当将 R8 与 AGP 7.3 或更高版本(例如 R8 版本 3.3)搭配使用时,系统会通过 API 建模自动执行此操作;当使用 AGP 8.1 或更高版本(例如 D8 版本 8.1)时,系统会针对所有 build 自动执行此操作。建议不使用 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 数据管理界面的 intent。(Ibf591)
- 移除了
AggregationResult
中的已废弃方法。(Idbda9) - 添加了便捷 API,用于使用重新封装的记录类型创建
ReadRecordsRequest
,以及删除和读取记录。(If58a5)
bug 修复
- 修复了 Android 14 中将 null 营养信息字段返回为
Double.MIN_VALUE
的 bug。(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 框架版本的 Health Connect。此 SDK 是 Android 14 的先决条件。如果没有该 API,应用将无法在 Android 14 上与 Health Connect 集成。
- 添加了用于记录元数据的记录方法。
API 变更
- Session 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 修复