健康
最新更新 | 稳定版 | 候选版本 | 测试版 | 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
中的hasMetric
和getMetric
,添加了 contains 和 get 运算符(I7cc7c) - 添加了
OvulationTest.Result.HIGH
和OvulationTest.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,允许在锻炼期间使用去抖功能(initialDelay
和durationAtThreshold
)跟踪样本数据类型或统计样本数据类型的目标。(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 的可靠性
- 修复了一个问题,即在同一时间调用
startExercise
和prepareExercise
可能导致ConcurrentModificationException
(4e37773) - 改进了文档
版本 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 文件。(Ic4630,b/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
失败时抛出HealthServicesException
(Ifd387) - 为异步
overrideBatchingModesForActiveExercise
API 引入了挂起函数,使其更适合 Kotlin。(I7dd15) BatchingMode
在ExerciseConfig
中可选覆盖。(Id22e9)
错误修复
DataType
和ExerciseUpdate
的小修复(5e185f)
版本 1.0.0-beta02
2023 年 1 月 11 日
androidx.health:health-services-client:1.0.0-beta02
已发布。版本 1.0.0-beta02 包含这些提交。
新功能
- 为
ExerciseClient
、PassiveMonitoringClient
和MeasureClient
中现有的异步ListenableFuture
API 添加了suspend
扩展函数,以更好地支持 Kotlin。(Iadea4) - 添加了
ExerciseTypeConfig
API,该 API 允许在进行中的锻炼期间进行更新。添加了GolfExerciseTypeConfig
以支持在高尔夫锻炼期间更新ExerciseTypeConfig
。(I4c539)
API 更改
- 在挂起函数上抛出
HealthServicesException
(I5e509) - 添加另一个构造函数以实现向后兼容性 (Iddeda)
- 在挂起函数上抛出
RuntimeException
(I53bca) - 移除抛出异常的默认实现 (Id947f)
- 添加
@JvmDefaultWithCompatibility
注解 (I8f206)
错误修复
版本 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 更改
- 更新了数据建模方式:数据模型以及
DataType
、DataPoint
及其底层值的表示方式进行了全面修改。最主要的改变是 API 现在更加明确且类型安全。 - 位置
DataPoint
不再表示为DoubleArray
,而是表示为强类型化的LocationData
对象。 - 迁移到一组新的被动监听器 API
- 广播已由
PassiveListenerService
替换。 - 现有的监听器已由单个监听器替换:
PassiveListenerCallback
。
- 广播已由
- 在 Health Services 清单中添加了
<queries>
标签,以便应用程序不再需要在自己的清单中指定此标签(前提是在其构建系统中启用了清单合并)。 - 放弃使用多个
ExerciseState
来表示运动结束/已结束,并添加了新的运动状态ENDING
和ENDED
。现在,这些状态与ExerciseEndReason
组合在一起,以表示所有先前的状态。 - 将
PassiveListenerConfig
的setPassiveGoals
重命名为setDailyGoals
,以更好地反映我们仅支持每日被动目标。 PassiveGoal
现在始终为REPEATED
,被动TriggerFrequency
已移除。- 使用
@FloatRange
对所有Long
和Double
参数进行了注解。 - 在
ExerciseConfig
中添加了swimmingPoolLengthMeters
属性,可以根据需要指定该属性以改进泳池游泳的距离计算。 - 已弃用
ExerciseUpdate.activeDuration
。请改用ExerciseUpdate.activeDurationCheckpoint
。 - 将
ExerciseClient
中的 APIflushExerciseAsync()
重命名为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 表面:ExerciseClient
、PassiveMonitoringClient
和 MeasureClient
。
ExerciseClient
ExerciseClient
适用于跟踪主动锻炼的应用程序,提供多达 82 种不同的 ExerciseType
,从步行和跑步到跳舞和水球。在跟踪这些运动时,根据运动类型和设备上可用的硬件,可以选择 50 种不同的 DataType
。要开始使用,只需在您的 ExerciseConfig
中指定相关信息,调用 exerciseClient.startExercise
并监听更新监听器上的进度。
PassiveMonitoringClient
如果您的应用程序全天跟踪用户的活动,PassiveMonitoringClient
是一个不错的选择。您可以使用一组 DataType
注册一个 PendingIntent
,并唤醒以处理批处理更改。或者,您可以指定一个 Event
,例如达到一定步数。
MeasureClient
有时用户需要立即测量例如心率,而不是在运动期间或全天测量。在这些时刻,MeasureClient
是完美的选择。您只需使用支持的 DataType
注册您的回调以接收数据流,并在不再需要时取消注册您的回调。