Health Connect 存储和组织健康和健身数据。它还考虑了不同数据类型的测量方式。这些数据类型包括立即测量的心率、一段时间内的步数和会话中的睡眠数据。
首先了解 Health Connect 提供的数据类型和权限非常重要,这样您才能规划应用的需求。因此,在确定最终需求之前,您需要审查您的数据类型。
数据类型类别
Health Connect 支持大多数健康和健身应用中使用的各种数据类型,以提供尽可能多的多样性。Health Connect 旨在提供健康和健身数据的全面视图和存储。这些数据类型属于以下类别:
- 活动:这会捕获用户执行的任何活动。它可以包括健康和健身活动,例如跑步、游泳和睡眠。
- 身体测量:这会捕获与身体相关的常见数据,例如用户的体重和基础代谢率。
- 周期跟踪:这会捕获月经周期和相关数据点,例如排卵测试的二元结果。
- 营养:这会捕获水合作用和营养数据类型。前者表示用户在一杯饮料中消耗的水量。后者包括可选字段,例如卡路里、糖和镁。
- 睡眠:这会捕获与用户睡眠时长和类型相关的区间数据。
- 生命体征:这会捕获有关用户一般健康状况的重要信息。它包括体温、血糖、血压和血氧饱和度等数据。
数据类型格式
Health Connect 中的数据类型存储在作为 Record
子类的对象中。
每种数据类型都关联着一些字段,这些字段要么是通用的,例如time
和zoneOffset
,要么是特定类型的,例如title
、count
和percentage
。有些字段使用简单类型——例如长整型、双精度型或字符串——而其他字段则使用复杂类型,例如枚举和类,如Instant
和ZoneOffset
。这些字段的属性可以是必需的或可选的。有些属性是只读的,有些属性则被限制在一个特定的值范围内。
有关可用数据类型及其字段的完整列表,请参阅Jetpack中的类。
附加数据属性
Health Connect API 中的数据还包括以下列表中描述的元数据属性
- Health Connect ID:每个数据点在创建时都会分配一个唯一的标识符 (UID)。这对于标准的读写操作非常有用。有关更多详细信息,请参阅Health Connect ID。
- 上次修改时间:这标记了记录最后一次更新的时间戳。它在记录首次创建或每次更新时自动生成。
- 数据来源:Health Connect 存储有关数据来源应用程序的信息。它包含该来源的包名,该包名在创建时自动添加。
- 设备:Health Connect 存储有关数据来源设备的信息。它包含该设备的制造商和型号,您需要手动提供该值。
- 客户端 ID:Health Connect 提供客户端 ID,以便客户端应用程序可以使用其自己的 ID 来引用数据,这有助于解决冲突并简化同步。这需要手动添加到记录中。
- 客户端记录版本:与客户端 ID 一起,Health Connect 提供版本控制以帮助跟踪数据同步期间的更改。这需要手动添加到记录中。
- 记录方法:Health Connect 允许您了解数据的记录方式。这些方法包括应用程序被动(自动)记录数据以及用户主动或手动记录数据。
Health Connect ID
Health Connect 为新插入的数据对象分配唯一的标识符 (UID),这些标识符用于标识数据对象并将其与其他对象区分开来。Health Connect ID 用于读写请求。Health Connect ID 与客户端 ID 不相同。客户端应用程序分配客户端 ID,而 Health Connect 专门分配 Health Connect ID。
使用 Health Connect ID 时,请记住以下说明
- 会话只有一个 Health Connect ID,但会话中的数据有其自己的 Health Connect ID。
- Health Connect ID 与时间戳无关。
- 某些用例可能需要在工作流期间存储特定的 Health Connect ID。例如,需要特定的 ID 来检索并向用户显示他们刚刚记录的数据条目。
Health Connect 中的时间
写入 Health Connect 的所有数据都必须指定时区偏移信息。指定时区偏移信息使应用程序能够读取数据以将其表示为民用时间。民用时间是当地时间,与用户相关,但不一定是协调世界时 (UTC)。
在极少数情况下,时区偏移信息可能不可用。当这种情况发生在 Android 14(API 级别 34)中时,Health Connect 会根据设备的系统默认时区设置时区偏移信息。在 Android 13 及更低版本(API 级别 33 及更低版本)中,可以写入 Health Connect 而无需指定任何时区偏移信息,但应尽可能避免这种情况。
时间和时区设置
在写入数据时指定时区偏移信息可以在读取 Health Connect 中的数据时提供时区信息。但是,在某些情况下,例如未提供时区偏移信息时,这可能会失败。您的应用程序需要做好准备来处理这两种数据,以一种适合您具体情况的方式。
权限
在请求任何权限之前,您的应用程序必须首先在清单中声明它们。请参阅下表以了解数据类型及其权限的完整映射。
对于 1.0.0-alpha10 及更高版本
记录类类型 | 读写权限声明 |
---|---|
消耗的活跃卡路里 | android.permission.health.READ_ACTIVE_CALORIES_BURNED android.permission.health.WRITE_ACTIVE_CALORIES_BURNED |
基础体温 | android.permission.health.READ_BASAL_BODY_TEMPERATURE android.permission.health.WRITE_BASAL_BODY_TEMPERATURE |
基础代谢率 | android.permission.health.READ_BASAL_METABOLIC_RATE android.permission.health.WRITE_BASAL_METABOLIC_RATE |
血糖 | android.permission.health.READ_BLOOD_GLUCOSE android.permission.health.WRITE_BLOOD_GLUCOSE |
血压 | android.permission.health.READ_BLOOD_PRESSURE android.permission.health.WRITE_BLOOD_PRESSURE |
体脂 | android.permission.health.READ_BODY_FAT android.permission.health.WRITE_BODY_FAT |
体温 | android.permission.health.READ_BODY_TEMPERATURE android.permission.health.WRITE_BODY_TEMPERATURE |
体水分 | android.permission.health.READ_BODY_WATER_MASS android.permission.health.WRITE_BODY_WATER_MASS |
骨量 | android.permission.health.READ_BONE_MASS android.permission.health.WRITE_BONE_MASS |
宫颈粘液 | android.permission.health.READ_CERVICAL_MUCUS android.permission.health.WRITE_CERVICAL_MUCUS |
自行车踏频 | android.permission.health.READ_EXERCISE android.permission.health.WRITE_EXERCISE |
距离 | android.permission.health.READ_DISTANCE android.permission.health.WRITE_DISTANCE |
爬升高度 | android.permission.health.READ_ELEVATION_GAINED android.permission.health.WRITE_ELEVATION_GAINED |
运动会话 | android.permission.health.READ_EXERCISE android.permission.health.WRITE_EXERCISE |
攀爬楼层 | android.permission.health.READ_FLOORS_CLIMBED android.permission.health.WRITE_FLOORS_CLIMBED |
心率 | android.permission.health.READ_HEART_RATE android.permission.health.WRITE_HEART_RATE |
心率变异性 RMSSD | android.permission.health.READ_HEART_RATE_VARIABILITY android.permission.health.WRITE_HEART_RATE_VARIABILITY |
身高 | android.permission.health.READ_HEIGHT android.permission.health.WRITE_HEIGHT |
水分摄入 | android.permission.health.READ_HYDRATION android.permission.health.WRITE_HYDRATION |
经间期出血 | android.permission.health.READ_INTERMENSTRUAL_BLEEDING android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING |
瘦体重 | android.permission.health.READ_LEAN_BODY_MASS android.permission.health.WRITE_LEAN_BODY_MASS |
月经流量 | android.permission.health.READ_MENSTRUATION android.permission.health.WRITE_MENSTRUATION |
月经周期 | android.permission.health.READ_MENSTRUATION android.permission.health.WRITE_MENSTRUATION |
营养 | android.permission.health.READ_NUTRITION android.permission.health.WRITE_NUTRITION |
排卵测试 | android.permission.health.READ_OVULATION_TEST android.permission.health.WRITE_OVULATION_TEST |
血氧饱和度 | android.permission.health.READ_OXYGEN_SATURATION android.permission.health.WRITE_OXYGEN_SATURATION |
计划运动 | android.permission.health.READ_PLANNED_EXERCISE android.permission.health.WRITE_PLANNED_EXERCISE |
功率 | android.permission.health.READ_POWER android.permission.health.WRITE_POWER |
呼吸频率 | android.permission.health.READ_RESPIRATORY_RATE android.permission.health.WRITE_RESPIRATORY_RATE |
静息心率 | android.permission.health.READ_RESTING_HEART_RATE android.permission.health.WRITE_RESTING_HEART_RATE |
性活动 | android.permission.health.READ_SEXUAL_ACTIVITY android.permission.health.WRITE_SEXUAL_ACTIVITY |
皮肤温度 | androidx.health.permission.SkinTemperature.READ androidx.health.permission.SkinTemperature.WRITE |
睡眠会话 | android.permission.health.READ_SLEEP android.permission.health.WRITE_SLEEP |
速度 | android.permission.health.READ_SPEED android.permission.health.WRITE_SPEED |
步频 | android.permission.health.READ_STEPS android.permission.health.WRITE_STEPS |
步数 | android.permission.health.READ_STEPS android.permission.health.WRITE_STEPS |
总消耗卡路里 | android.permission.health.READ_TOTAL_CALORIES_BURNED android.permission.health.WRITE_TOTAL_CALORIES_BURNED |
最大摄氧量 | android.permission.health.READ_VO2_MAX android.permission.health.WRITE_VO2_MAX |
体重 | android.permission.health.READ_WEIGHT android.permission.health.WRITE_WEIGHT |
轮椅推动次数 | android.permission.health.READ_WHEELCHAIR_PUSHES android.permission.health.WRITE_WHEELCHAIR_PUSHES |
对于 1.0.0-alpha09 及更低版本
记录类类型 | 读写权限声明 |
---|---|
消耗的活跃卡路里 | androidx.health.permission.ActiveCaloriesBurned.READ androidx.health.permission.ActiveCaloriesBurned.WRITE |
基础体温 | androidx.health.permission.BasalBodyTemperature.READ androidx.health.permission.BasalBodyTemperature.WRITE |
基础代谢率 | androidx.health.permission.BasalMetabolicRate.READ androidx.health.permission.BasalMetabolicRate.WRITE |
血糖 | androidx.health.permission.BloodGlucose.READ androidx.health.permission.BloodGlucose.WRITE |
血压 | androidx.health.permission.BloodPressure.READ androidx.health.permission.BloodPressure.WRITE |
体脂 | androidx.health.permission.BodyFat.READ androidx.health.permission.BodyFat.WRITE |
体温 | androidx.health.permission.BodyTemperature.READ androidx.health.permission.BodyTemperature.WRITE |
体水分 | androidx.health.permission.BodyWaterMass.READ androidx.health.permission.BodyWaterMass.WRITE |
骨量 | androidx.health.permission.BoneMass.READ androidx.health.permission.BoneMass.WRITE |
宫颈粘液 | androidx.health.permission.CervicalMucus.READ androidx.health.permission.CervicalMucus.WRITE |
自行车踏频 | androidx.health.permission.CyclingPedalingCadence.READ androidx.health.permission.CyclingPedalingCadence.WRITE |
距离 | androidx.health.permission.Distance.READ androidx.health.permission.Distance.WRITE |
爬升高度 | androidx.health.permission.ElevationGained.READ androidx.health.permission.ElevationGained.WRITE |
运动会话 | androidx.health.permission.ExerciseSession.READ androidx.health.permission.ExerciseSession.WRITE |
攀爬楼层 | androidx.health.permission.FloorsClimbed.READ androidx.health.permission.FloorsClimbed.WRITE |
心率 | androidx.health.permission.HeartRate.READ androidx.health.permission.HeartRate.WRITE |
心率变异性 RMSSD | androidx.health.permission.HeartRateVariabilityRmssd.READ androidx.health.permission.HeartRateVariabilityRmssd.WRITE |
身高 | androidx.health.permission.Height.READ androidx.health.permission.Height.WRITE |
水分摄入 | androidx.health.permission.Hydration.READ androidx.health.permission.Hydration.WRITE |
经间期出血 | androidx.health.permission.IntermenstrualBleeding.READ androidx.health.permission.IntermenstrualBleeding.WRITE |
瘦体重 | androidx.health.permission.LeanBodyMass.READ androidx.health.permission.LeanBodyMass.WRITE |
月经流量 | androidx.health.permission.MenstruationFlow.READ androidx.health.permission.MenstruationFlow.WRITE |
营养 | androidx.health.permission.Nutrition.READ androidx.health.permission.Nutrition.WRITE |
排卵测试 | androidx.health.permission.OvulationTest.READ androidx.health.permission.OvulationTest.WRITE |
血氧饱和度 | androidx.health.permission.OxygenSaturation.READ androidx.health.permission.OxygenSaturation.WRITE |
功率 | androidx.health.permission.Power.READ androidx.health.permission.Power.WRITE |
呼吸频率 | androidx.health.permission.RespiratoryRate.READ androidx.health.permission.RespiratoryRate.WRITE |
静息心率 | androidx.health.permission.RestingHeartRate.READ androidx.health.permission.RestingHeartRate.WRITE |
性活动 | androidx.health.permission.SexualActivity.READ androidx.health.permission.SexualActivity.WRITE |
睡眠会话 | androidx.health.permission.SleepSession.READ androidx.health.permission.SleepSession.WRITE |
速度 | androidx.health.permission.Speed.READ androidx.health.permission.Speed.WRITE |
步频 | androidx.health.permission.StepsCadence.READ androidx.health.permission.StepsCadence.WRITE |
步数 | androidx.health.permission.Steps.READ androidx.health.permission.Steps.WRITE |
总消耗卡路里 | androidx.health.permission.TotalCaloriesBurned.READ androidx.health.permission.TotalCaloriesBurned.WRITE |
最大摄氧量 | androidx.health.permission.Vo2Max.READ androidx.health.permission.Vo2Max.WRITE |
体重 | androidx.health.permission.Weight.READ androidx.health.permission.Weight.WRITE |
轮椅推动次数 | androidx.health.permission.WheelchairPushes.READ androidx.health.permission.WheelchairPushes.WRITE |
查看您的数据类型和权限
现在您已经规划好了数据类型和权限,您可以在开发过程中实现它们。
在将您的应用上传到 Play 商店之前进行审核时,请仔细检查您的应用所需的各项数据类型和权限列表。这使您可以准确地声明您的应用的数据使用情况。
当您准备将应用发布到 Play 商店时,请声明您的应用使用的 Health Connect 数据类型的访问权限。否则,用户可能会收到错误消息,提示您的应用无法访问 Health Connect 数据类型,因为这些数据类型需要特殊批准。