健康

  
以平台无关的方式创建高性能的健康应用。
最新更新 稳定版 候选版 Beta 版 Alpha 版
2024年10月16日 - 1.0.0-rc02 - 1.1.0-alpha04

声明依赖项

要添加对 Health 的依赖项,必须将 Google Maven 存储库添加到您的项目中。阅读Google 的 Maven 存储库以了解更多信息。

在应用或模块的build.gradle文件中添加所需构件的依赖项

Groovy

dependencies {
    implementation "androidx.health:health-services-client:1.1.0-alpha04"
}

Kotlin

dependencies {
    implementation("androidx.health:health-services-client:1.1.0-alpha04")
}

反馈

您的反馈有助于改进 Jetpack。如果您发现新的问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中现有问题。您可以通过单击星号按钮为现有问题添加您的投票。

创建新问题

查看问题跟踪器文档以了解更多信息。

Health Connect Client 版本 1.0

版本 1.0.0-alpha04

2022年8月24日

从 1.0.0-alpha04 开始,androidx.health:health-connect-client 已迁移到 androidx.health.connect:connect-client。对于未来的版本,请使用 androidx.health.connect:connect-client 以及我们Health Connect页面上的相关发行说明。

要迁移,只需将您的依赖项导入从 androidx.health:health-connect-client:1.0.0-alpha03 更改为 androidx.health.connect:connect-client:1.0.0-alpha04

版本 1.0.0-alpha03

2022年7月27日

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

新功能

  • 新的 API 更改摘要:已向读取、写入和聚合 API 添加了一组单位。应用现在可以使用它们选择的单位检索或写入记录,例如 NutritionRecord 营养素的克或毫克。

API 更改

  • List<DataOrigin> 修复为 Set<DataOrigin>,用于各种请求响应对象。(I42342
  • 将基础总卡路里的单位从 Power->Energy 修复。(I0b429
  • 将系列示例类移到系列记录内 (Ica9bb)
    • CyclingPedalingCadence -> CyclingPedalingCadenceRecord.Sample
    • HeartRate -> HeartRateRecord.Sample
    • StepsCadence -> StepsCadenceRecord.Sample
  • 弃用 HealthDataRequestPermission 类,改用 PermissionController.createRequestPermissionActivityContract;这提高了可发现性并统一了参数化。(I81e7f)
  • 在体积单位中添加了美制液量盎司。(I5f03d)
  • 添加了速度单位类型(I1d574)
  • 添加了百分比单位类型(I08f23)
  • 添加了压力单位类型(Ifb01f)
  • 添加了质量单位类型(Ifd81a)
  • 添加了体积单位类型(I59ad1)
  • 添加了功率单位类型。将功率系列样本类移至 PowerRecord 类内。(I5b1e5)
  • 添加了能量单位类型(I983ae)
  • 添加了温度单位类型(I4cdb5)
  • 将对 Activity 的引用重命名为特定于锻炼的引用,包括(I3f936)
    • 重命名 ActivityLap -> ExerciseLapRecord
    • 重命名 ActivityEvent -> ExerciseEventRecord
    • 重命名 Repetitions -> ExerciseRepetitionsRecord
    • 重命名 ActivitySession -> ExerciseSessionRecord
  • 将包元数据嵌套在记录下。(Ie0835)
  • 在所有剩余记录中使用长度单位(Ib10dd)
    • ActivityLapRecord
    • ElevationGainedRecord
    • HeightRecord
    • HipCircumferenceRecord
    • WaistCircumferenceRecord
  • 添加了长度单位类型(Idae39)
  • 更新 CervicalMucus 描述术语(I25a2b)
    • CervicalMucus.Amount -> CervicalMucusRecord.Texture
    • CervicalMucus.Appearance -> CervicalMucusRecord.Sensation
  • 为所有记录类名添加了“Record”后缀(I1ffc2)

错误修复

  • 修复了使用 release 版本和 minifyEnabled 为 true 构建库时的 proguard 问题。(I78933)
  • 隐藏了不打算公开使用的文档。(I7a08f)
  • 修复了客户端可能拥有自己的 protobuf 依赖项的问题。(https://android-review.googlesource.com/c/platform/frameworks/support/+/2105430)

1.0.0-alpha02 版本

2022 年 6 月 1 日

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

API 更改

  • 已弃用 AggregationResult 中的 hasMetricgetMetric,添加了 contains 和 get 运算符(I7cc7c)
  • 添加了 OvulationTest.Result.HIGHOvulationTest.Result.INCONCLUSIVE。(I9f9c4)

错误修复

  • 将 SDK 要求降低到 26。(I6d201)

1.0.0-alpha01 版本

2022 年 5 月 11 日

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

新功能

  • 用于读取其他应用共享的健身和健康记录的 API。
  • 用于将健身和健康记录写入与其他应用共享的 API。
  • 用于检索可访问记录的聚合指标的 API。
  • 用于检索其他应用记录的增量更改(插入、更新或删除)的 API。
  • 用于提示用户进行健康权限授权的 API。
  • 用于检查权限或撤销已授予的健康权限的 API。

健康服务客户端 1.1 版本

1.1.0-alpha04 版本

2024年10月16日

androidx.health:health-services-client:1.1.0-alpha04androidx.health:health-services-client-external-protobuf:1.1.0-alpha04androidx.health:health-services-client-proto:1.1.0-alpha04 已发布。1.1.0-alpha04 版本包含 这些提交

安全修复

  • 此更改 起,androidx 编译时使用 protobuf 4.28.2 来解决 CVE-2024-7254。将您对 androidx.health:health-services-client 的依赖项升级到最新的 1.1.0-alpha04 版本,以解决此漏洞风险。

1.1.0-alpha02 版本

2023 年 12 月 13 日

androidx.health:health-services-client:1.1.0-alpha02 已发布。1.1.0-alpha02 版本包含这些提交。

API 更改

  • 使用 ExerciseEvent 的单一事实来源。(I03308)

错误修复

  • 次要错误修复和文档改进。

1.1.0-alpha01 版本

2023 年 8 月 9 日

androidx.health:health-services-client:1.1.0-alpha01 已发布。1.1.0-alpha01 版本包含这些提交。

新功能

  • ExerciseEvent API 以及第一个具体事件:GolfShotEvent 已添加。ExerciseEvent 原语使开发人员能够查询支持,并在手表检测到发生某些事件时请求通知。GolfShotEvent 例如,使开发人员能够在用户挥杆击球时收到通知,并接收识别的挥杆类型。

API 更改

  • 使 WHS SDK 客户端能够使用 GolfShotEvent 功能。(I76b03)

错误修复

  • 不再在看到未知的锻炼事件功能时积极抛出异常,而是将其从列表中过滤掉。(I06afc)

健康服务客户端 1.0 版本

1.1.0-alpha03 版本

2024 年 5 月 14 日

androidx.health:health-services-client:1.1.0-alpha03 已发布。1.1.0-alpha03 版本包含 这些提交

新功能

  • 引入了 DebouncedGoal API,允许在锻炼期间使用去抖动功能(initialDelaydurationAtThreshold)跟踪样本数据类型或统计样本数据类型的目标。(I09be9)
  • 添加了以下高级跑步指标样本和统计 DataTypes。(I0b8b5)
    • 地面接触时间
    • 垂直振动
    • 垂直比率
    • 步幅长度

API 更改

  • 添加了 ELEVATION_GAIN_DAILY DataType。(I059d1)
  • 添加了 SWIM_LAP_COUNT_TOTAL DataType 作为 SWIM_LAP_COUNT 的聚合 DataType。(I0beeb)

错误修复

  • 修复了各种问题以提高 IPC 可靠性。

1.0.0-rc02 版本

2024 年 4 月 3 日

androidx.health:health-services-client:1.0.0-rc02 已发布。1.0.0-rc02 版本包含 这些提交。这是一个仅修复错误的版本,不包含 API 更改。

错误修复

  • 修复了各种问题以提高 IPC 可靠性
  • 修复了一个问题,即同时调用 startExerciseprepareExercise 可能导致 ConcurrentModificationException(4e37773)
  • 改进的文档

1.0.0-rc01 版本

2023 年 7 月 26 日

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

新功能

  • 健康服务在 Beta 版本稳定后已迁移到 1.0.0-rc01。

API 更改

  • 合并了 h- 到 m- 路径的公共和实验性 API 文件。(Ic4630b/278769092)
  • N/A,API 文件更改只是方法重新排序。(I5fa95)

1.0.0-beta03 版本

2023 年 4 月 5 日

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

新功能

BatchingMode 现在可以配置为以配置的间隔传递批处理的锻炼数据,而不是在活跃锻炼期间的默认值,可以通过 ExerciseConfig 在锻炼开始时或通过覆盖方法在锻炼期间进行配置。对这一点的支持将由 Google Play 商店中即将发布的健康服务版本启用,并且可以通过锻炼功能进行检查。*注意:批处理模式在设备处于非交互式电源状态时生效,并且会增加功耗。*

API 更改

  • 当挂起函数 overrideBatchingModesForActiveExercise 失败时抛出 HealthServicesException(Ifd387)
  • 为异步 overrideBatchingModesForActiveExercise API 引入了挂起函数,使其更易于 Kotlin 使用(I7dd15)
  • BatchingModeExerciseConfig 中可选覆盖(Id22e9)

错误修复

  • DataTypeExerciseUpdate 的少量修复(5e185f)

1.0.0-beta02 版本

2023 年 1 月 11 日

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

新功能

  • ExerciseClientPassiveMonitoringClientMeasureClient 中现有的异步 ListenableFuture API 添加了 suspend 扩展函数,以获得更好的 Kotlin 支持。(Iadea4)
  • 添加了 ExerciseTypeConfig API,该 API 允许在正在进行的锻炼期间进行更新。添加了 GolfExerciseTypeConfig 以支持在高尔夫运动期间更新 ExerciseTypeConfig。(I4c539)

API 更改

  • 在挂起函数上抛出 HealthServicesException(I5e509)
  • 添加另一个构造函数以实现向后兼容性(Iddeda
  • 在挂起函数中抛出RuntimeExceptionI53bca
  • 移除抛出异常的默认实现(Id947f
  • 添加@JvmDefaultWithCompatibility注解(I8f206

错误修复

  • 为了清晰起见,添加到kdoc中(Ide285
  • 仅当也跟踪相同的数据类型时,才允许被动监控跟踪目标(Ibed8d

版本 1.0.0-beta01

2022年10月24日

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

新功能

  • 添加了通过PassiveMonitoringClient监听健康事件的能力,第一个事件是:HealthEvent.FALL_DETECTED

  • 新的运动类型

    • 高山滑雪
    • 背包旅行
    • 越野滑雪
    • 骑马
    • 轮滑
    • 山地自行车
    • 定向越野
    • 滚轴溜冰
    • 帆船运动
  • 新的数据类型

    • 海拔下降
    • 高尔夫挥杆次数

API 更改

  • 更新了数据的建模方式:数据模型以及DataTypeDataPoint及其底层值的表示方式都进行了修改。最主要的改进是API现在更加明确且类型安全。
  • 位置DataPoint不再表示为DoubleArray,而是表示为强类型LocationData对象。
  • 迁移到一组新的被动监听器API
    • 广播已被PassiveListenerService取代。
    • 现有的监听器已被单个监听器取代:PassiveListenerCallback
  • 向健康服务清单中添加了<queries>标签,以便应用程序不再需要在其自己的清单中指定此标签(前提是在其构建系统中启用了清单合并)。
  • 放弃使用多个ExerciseState来表示运动结束/已结束,并添加了新的运动状态ENDINGENDED。这些现在与ExerciseEndReason结合使用,以表示先前状态的全部范围。
  • PassiveListenerConfigsetPassiveGoals重命名为setDailyGoals,以更好地反映我们只支持每日被动目标。
  • PassiveGoal现在始终REPEATED,被动TriggerFrequency已移除。
  • 使用@FloatRange对所有LongDouble参数进行了注解。
  • ExerciseConfig添加了swimmingPoolLengthMeters属性,可以根据需要指定该属性以改进泳池游泳的距离计算。
  • 已弃用ExerciseUpdate.activeDuration。请改用ExerciseUpdate.activeDurationCheckpoint
  • ExerciseClient中的API flushExerciseAsync()重命名为flushAsync()
  • Measure.registerCallback重命名为Measure.registerMeasureCallback
  • 常规命名更改
    • 距离属性现在带有meters后缀。
    • 回调方法名称现在为过去式。
    • 大多数缩写已被移除(HrAccuracy现在为HeartRateAccuracy)。
    • 遵循enableFoo模式的属性现在命名为isFooEnabled
  • 已迁移,不再使用枚举。
  • Double表示的时间现在由Duration表示。
  • 返回ListenableFuture<Void?>的函数现在返回ListenableFuture<Void>
  • 接受回调的函数现在始终将回调作为最后一个参数。
  • 带有构建器的类现在也始终具有公共构造函数。
  • 注册函数不再返回ListenableFuture,而是将注册状态传递给提供的回调。
  • KDocs现已改进。
  • 公共类不再扩展ProtoParcelable

错误修复

  • IPC可靠性的一般改进(I3b1e2

版本 1.0.0-alpha03

2021年11月3日

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

新功能

  • 如果与健康服务APK的IPC连接中断,SDK将自动重新注册测量、运动监听器和被动监控回调注册请求。

API 更改

  • 由于健康服务客户端目前仅支持Wear3,因此SDK库的minSdkVersion已提升到API级别30。

1.0.0-alpha02 版本

2021年9月29日

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

API 更改

  • ExerciseClient现在支持准备运动。这允许客户端在开始运动之前预热传感器并等待诸如GPS定位等操作。
  • 引入了CumulativeDataPoints和StatisticalDataPoints AggregateDataPoint类,以更好地模拟在主动运动期间跟踪的聚合指标。CumulativeDataPoints保存聚合区间数据类型的累积值(例如运动期间的总距离),而StatisticalDataPoints则模拟采样数据点的聚合(例如最小值、最大值和平均心率)。这取代了以前的AGGREGATE_* DataTypes,并且可以通过getLatestAggregateMetrics()在ExerciseUpdate中访问。AGGREGATE_* DataTypes不再受支持。
  • PassiveMonitoring事件已重命名为PassiveGoals,支持设置目标并在达到诸如每日指标(即DAILY_STEPS)等数据类型的目标时接收通知。
  • 通过引入新的HrAccuracy、LocationAccuracy和LocationAvailability类,改进了心率和位置精度以及可用性的建模。
  • 改进了ExerciseConfig和新的PassiveMonitoringConfig字段的命名,并引入了ExerciseConfig.shouldEnableGps来请求基于GPS的数据。

错误修复

  • 迁移到基于proto的IPC传输,以更好地支持向后兼容性。

1.0.0-alpha01 版本

2021年5月18日

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

初始版本的特性

健康服务库为开发人员提供了一套统一的API,用于与特定于设备的传感器实现集成。它将与Wear OS 3模拟器和即将推出的设备开箱即用,未来将支持更多平台。此初始版本包含三个顶级API界面:ExerciseClientPassiveMonitoringClientMeasureClient

ExerciseClient

ExerciseClient适用于跟踪主动锻炼的应用程序,它提供了多达82种不同的ExerciseType,从步行和跑步到跳舞和水球。在跟踪这些锻炼时,根据设备上可用的锻炼类型和硬件,可以选择50种不同的DataType。要开始使用,只需在您的ExerciseConfig中指定相关信息,调用exerciseClient.startExercise并在更新监听器上监听进度。

PassiveMonitoringClient

PassiveMonitoringClient是您的应用程序全天跟踪用户活动的绝佳选择。您可以使用一组DataType注册一个PendingIntent,并被唤醒以处理批处理更改。或者,您可以指定一个Event,例如达到一定步数。

MeasureClient

有时用户需要即时测量例如心率,而不是在运动期间或全天测量。MeasureClient是这些时刻的完美选择。您只需使用支持的DataType注册您的回调即可接收数据流,并在不再需要时注销您的回调。