健康

  
以平台无关的方式创建高性能的健康应用。
最新更新 稳定版 候选版本 测试版 Alpha 版
2024 年 5 月 14 日 - 1.0.0-rc02 - 1.1.0-alpha03

声明依赖项

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

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

Groovy

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

Kotlin

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

反馈

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

创建新问题

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

Health Connect 客户端版本 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
  • 向 Volume 添加了美国液体盎司。(I5f03d
  • 添加了速度单位类型(I1d574
  • 添加了百分比单位类型(I08f23
  • 添加了压力单位类型(Ifb01f
  • 添加了质量单位类型(Ifd81a
  • 添加了体积单位类型(I59ad1
  • 添加了功率单位类型。将功率系列样本类移至 PowerRecord 类内部。(I5b1e5
  • 添加了能量单位类型(I983ae
  • 添加了温度单位类型(I4cdb5
  • 将 Activity 的引用重命名为特定于 Exercise 的名称,包括(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

错误修复

  • 修复了库使用发布版本和 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。

Health Services Client 版本 1.1

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

Health Services Client 版本 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 可能导致 ConcurrentModificationException4e37773
  • 改进了文档

版本 1.0.0-rc01

2023 年 7 月 26 日

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

新功能

  • Health Services 在 Beta 版稳定后已迁移至 1.0.0-rc01。

API 更改

  • 合并了 h- 到 m- 路径的公共和实验性 API 文件。(Ic4630b/278769092
  • 不适用,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 商店中即将发布的 Health Services 版本将启用对此的支持,并且可以通过锻炼功能进行检查。*注意:批处理模式在设备处于非交互式电源状态时生效,并且会导致功耗增加。*

API 更改

  • 在挂起函数 overrideBatchingModesForActiveExercise 失败时抛出 HealthServicesExceptionIfd387
  • 为异步 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)
  • 在挂起函数上抛出 RuntimeException (I53bca)
  • 移除抛出异常的默认实现 (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
  • 在 Health Services 清单中添加了 <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 包含以下提交。

新功能

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

API 更改

  • 由于 Health Services 客户端当前仅在 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_* 数据类型,可以通过 getLatestAggregateMetrics() 在 ExerciseUpdate 中访问。不再支持 AGGREGATE_* 数据类型。
  • PassiveMonitoring 事件已重命名为 PassiveGoals,支持设置目标并在达到每日指标(例如 DAILY_STEPS)等数据类型的目标时接收通知。
  • 通过引入新的 HrAccuracy、LocationAccuracy 和 LocationAvailability 类,改进了心率和位置精度以及可用性的建模。
  • 改进了 ExerciseConfig 和新的 PassiveMonitoringConfig 字段的命名,并引入了 ExerciseConfig.shouldEnableGps 以请求基于 GPS 的数据

错误修复

  • 迁移到基于协议缓冲区的 IPC 传输,以更好地支持向后兼容性

版本 1.0.0-alpha01

2021年5月18日

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

初始版本的特性

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

ExerciseClient

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

PassiveMonitoringClient

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

MeasureClient

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