运行状况

  
通过平台无关的方式构建高性能健康应用。
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2023 年 12 月 13 日 - 1.0.0-rc01 - 1.1.0-alpha02

声明依赖项

如需添加 Health 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 制品库

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

Groovy

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

Kotlin

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

反馈

您的反馈将帮助我们改进 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-clientHealth 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
  • 移动了嵌套在 records 下的软件包元数据。(Ie0835)
  • 所有剩余记录中均使用长度单位 (Ib10dd):
    • ActivityLapRecord
    • ElevationGainedRecord
    • HeightRecord
    • HipCircumferenceRecord
    • WaistCircumferenceRecord
  • 添加了长度单位类型 (Idae39)
  • 更新了 CervicalMucus 说明术语 (I25a2b):
    • CervicalMucus.Amount -> CervicalMucusRecord.Texture
    • CervicalMucus.Appearance -> CervicalMucusRecord.Sensation
  • 为所有记录类名称添加了“Record”后缀 (I1ffc2)

bug 修复

  • 修复了使用发布变种构建 lib 且 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,添加了包含和获取运算符 (I7cc7c)
  • 添加 OvulationTest.Result.HIGHOvulationTest.Result.INCONCLUSIVE。(I9f9c4)

bug 修复

  • 将 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-alpha02

2023 年 12 月 13 日

发布了 androidx.health:health-services-client:1.1.0-alpha02版本 1.1.0-alpha02 中包含这些提交内容

API 变更

  • 为受支持的 ExerciseEvent 使用单一可信来源。(I03308

bug 修复

  • 修复了几个小问题并改进了文档。

版本 1.1.0-alpha01

2023 年 8 月 9 日

发布了 androidx.health:health-services-client:1.1.0-alpha01版本 1.1.0-alpha01 中包含这些提交内容

新功能

  • 随第一个具体事件 GolfShotEvent 一起添加了 ExerciseEvent API。借助 ExerciseEvent 基元,开发者可以查询对事件的支持,并请求在手表检测到事件发生时收到通知。以 GolfShotEvent 为例,除了接收系统识别的挥杆类型之外,开发者还可以在用户击球时收到通知。

API 变更

  • 启用 WHS SDK 客户端以使用 GolfShotEvent 功能。(I76b03

bug 修复

  • 不要在查看未知的锻炼事件功能时主动抛出异常,请将其从列表中滤除。(I06afc

健康服务客户端版本 1.0

版本 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- thru 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 商店中即将推出的健康服务版本启用,可以通过锻炼功能进行检查。注意:批处理模式会在设备处于非互动电源状态时生效,并且会导致功耗增加。

API 变更

  • 在挂起函数 overrideBatchingModesForActiveExercise 失败时抛出 HealthServicesException (Ifd387)
  • 为异步 overrideBatchingModesForActiveExercise API 引入了挂起函数,使其对 Kotlin 更友好 (I7dd15)
  • BatchingMode 替换项在 ExerciseConfig 中是可选的 (Id22e9)

bug 修复

  • 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,可在持续锻炼期间实现更新。添加了 GolfExerciseTypeConfig,以支持在高尔夫锻炼期间更新 ExerciseTypeConfig。(I4c539)

API 变更

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

bug 修复

  • 为清楚起见,将其添加到 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

  • 新增锻炼类型:

    • ALPINE_SKIING
    • BACKPACKING
    • CROSS_COUNTRY_SKIING
    • HORSE_RIDING
    • INLINE_SKATING
    • MOUNTAIN_BIKING
    • ORIENTEERING
    • ROLLER_SKATING
    • YACHTING
  • 新增数据类型:

    • ELEVATION_LOSS
    • GOLF_SHOT_COUNT

API 变更

  • 更新了数据的建模方式:数据模型以及 DataTypeDataPoint 及其底层值的表示方式已全新改版。最主要的效果是,API 现在更明确,类型更安全。
  • 位置 DataPoint 不再表示为 DoubleArray,而是表示为强类型的 LocationData 对象。
  • 已迁移至一组新的被动监听器 API:
    • 广播已替换为 PassiveListenerService
    • 现有的各种监听器已替换为单个监听器:PassiveListenerCallback
  • 已向健康服务清单添加 <queries> 标记,因此应用无需再在自己的清单中指定此服务(前提是已在构建系统中启用清单合并)。
  • 移除了很多表示锻炼即将结束/已结束的 ExerciseState,并且添加了新的锻炼状态 ENDINGENDED。这些状态现在与 ExerciseEndReason 相结合,用于表示先前的各种状态。
  • PassiveListenerConfig setPassiveGoals 已重命名为 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

bug 修复

  • 提升了 IPC 的总体可靠性 (I3b1e2)

版本 1.0.0-alpha03

2021 年 11 月 3 日

发布了 androidx.health:health-services-client:1.0.0-alpha03版本 1.0.0-alpha03 中包含这些提交内容

新功能

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

API 变更

  • SDK 库的 minSdkVersion 已提升为 API 级别 30,因为健康服务客户端目前仅在 Wear3 上受支持。

版本 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 模型会汇总采样数据点数据(例如 HeartRateBpm 最小值、最大值和平均值)。这取代了之前的 AGGREGATE_* 数据类型,并可在 ExerciseUpdate 中通过 getLatestAggregateMetrics() 进行访问。AGGREGATE_* 数据类型已不再受支持。
  • PassiveMonitoring 事件已重命名为 PassiveGoals,后者支持用户制定目标,并在每日指标(即 DAILY_STEPS)等数据类型方面达到这些目标时收到通知。
  • 引入了新的类,即 HrAccuracy、LocationAccuracy 和 LocationAvailability,改进了心率、位置信息精确度和位置可用性的建模。
  • 改进了 ExerciseConfig 和全新 PassiveMonitoringConfig 字段的命名方式,并引入了 ExerciseConfig.shouldEnableGps 以请求由 GPS 支持的数据

bug 修复

  • 迁移到了由 proto 支持的 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 Surface:ExerciseClientPassiveMonitoringClientMeasureClient

ExerciseClient

ExerciseClient 是专为用于跟踪有效锻炼的应用而设计的,可提供多达 82 种不同的 ExerciseType,例如步行、跑步、舞蹈和水球等。在跟踪这些锻炼时,有 50 种不同的 DataType 可供选择,具体取决于锻炼类型和设备上可用的硬件。如需开始使用,只需执行以下操作即可:在 ExerciseConfig 中指定相关信息,调用 exerciseClient.startExercise 并通过更新监听器监听进度。

PassiveMonitoringClient

如果您的应用可跟踪用户全天的活动,那么 PassiveMonitoringClient 是一个绝佳选择。您可以使用一组 DataType 注册一个 PendingIntent,并唤醒此 intent 来处理批量更改。此外,您也可以指定 Event,例如达到特定步数。

MeasureClient

有时,用户需要衡量当前的指标(例如心率),而不是锻炼时或全天的指标。在这些时候,MeasureClient 是绝佳选择。您只需通过支持的 DataType 注册回调来接收数据流即可;当不再需要回调时,请将其取消注册。