规划和审查 Health Connect 数据类型

Health Connect 存储和组织健康和健身数据。它还考虑了不同数据类型的测量方式。这些数据类型包括立即测量的心率、一段时间内的步数和会话中的睡眠数据。

首先了解 Health Connect 提供的数据类型和权限非常重要,这样您才能规划应用的需求。因此,在确定最终需求之前,您需要审查您的数据类型。

数据类型类别

Health Connect 支持大多数健康和健身应用中使用的各种数据类型,以提供尽可能多的多样性。Health Connect 旨在提供健康和健身数据的全面视图和存储。这些数据类型属于以下类别:

  • 活动:这会捕获用户执行的任何活动。它可以包括健康和健身活动,例如跑步、游泳和睡眠。
  • 身体测量:这会捕获与身体相关的常见数据,例如用户的体重和基础代谢率。
  • 周期跟踪:这会捕获月经周期和相关数据点,例如排卵测试的二元结果。
  • 营养:这会捕获水合作用和营养数据类型。前者表示用户在一杯饮料中消耗的水量。后者包括可选字段,例如卡路里、糖和镁。
  • 睡眠:这会捕获与用户睡眠时长和类型相关的区间数据。
  • 生命体征:这会捕获有关用户一般健康状况的重要信息。它包括体温、血糖、血压和血氧饱和度等数据。

数据类型格式

Health Connect 中的数据类型存储在作为 Record 子类的对象中。

每种数据类型都关联着一些字段,这些字段要么是通用的,例如timezoneOffset,要么是特定类型的,例如titlecountpercentage。有些字段使用简单类型——例如长整型、双精度型或字符串——而其他字段则使用复杂类型,例如枚举和类,如InstantZoneOffset。这些字段的属性可以是必需的或可选的。有些属性是只读的,有些属性则被限制在一个特定的值范围内。

有关可用数据类型及其字段的完整列表,请参阅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 数据类型,因为这些数据类型需要特殊批准。