Health Platform API

Health Platform API 是一个 Android API,为开发者提供用于读取、写入和分享用户历史健康和健身数据的界面。借助 Health Platform,用户可以控制自己的数据。用户可以控制哪些应用对不同类型的数据具有读取或写入权限。Health Platform API 数据类型包括高度、心率等。

Health Platform API 为用户提供存储和共享机制,可允许用户选择哪些应用可以访问和显示其个人健康和健身数据。这样一来,应用开发者便可以向用户显示更全面的健康视图,并允许用户更有效地监控其数据。

Health Platform API 软件开发者套件为 Android 应用开发者提供在特定三星设备上访问用户健康和健身数据所需的一切,并允许应用执行批量操作,例如插入、删除和读取数据。

开始使用

使用 Health Platform 时,请注意以下几个要点:

  • 客户端应用必须从用户处获取精细化的读取或写入权限。
  • 此后,用户可以随时拒绝权限或撤消权限。
  • Health Platform API 仅支持特定的三星设备。
  • HealthDataClient 是 Health Platform 的客户端和 Health Platform 的入口点。

下图显示了开发者必须遵循的必要集成步骤:

集成步骤

版本文件

Health Platform V1 版本包含以下内容:

  • 客户端 SDK:将此 SDK 添加到您的应用中以使用 Health Platform API。SDK 是一个 Maven 代码库,您可以直接将其添加到应用的 Gradle build 文件中。

安装 Health Platform

按照以下步骤安装 Health Platform:

在应用的根 build.gradle 文件中,添加代码库,如以下示例所示:

allprojects {
    ...
    repositories {
        ...
        google()
    }
}

在模块的 build.gradle 文件中,添加 Health Platform SDK 的依赖项,如以下示例所示:

dependencies {
   …
  implementation 'com.google.android.libraries.healthdata:health-data-api:1.0.0-alpha01'
}

数据

Health Platform 会存储健康与健身数据,并对其进行结构化处理。它还会考虑不同类型数据的衡量方式之间的核心差异。例如,心率测量会立即执行,但步数测量要经过一段时间。

下面介绍 Health Platform 中的核心对象及其差异:

  • RawData:测量和数据记录。
  • DataType:常见健康和健身数据类型(例如心率、体脂或体温)及其格式(例如字段、只读、可选)的说明符。
  • SampleData:一个 RawData 对象,它是瞬时测量值,例如心率、血压或跑步速度。
  • IntervalData:一个 RawData 对象,在一段时间内的累计测量值,例如行走步数、距离或消耗卡路里数。
  • SeriesData:一个 RawData 对象,用于封装一段时间内的一系列测量值。SeriesData 尤其适用于高频传感器数据,例如活动时段的连续心率采样。

这三个 RawData 类均对应于 DataType 的特定子类:SampleDataIntervalDataSeriesData 分别对应于 SampleDataTypeIntervalDataTypeSeriesDataType

每个 RawData 对象在插入时都会由 Health Platform 分配一个唯一标识符 (UID)。您可以使用此 UID 在读取、更新或删除请求中引用特定的 RawData 对象。

数据类型

Health Platform 包含通常用于健康与健身应用的各种数据类型。使用可用数据类型存储的数据可让用户全面了解其历史健康和健身数据,并深入分析其日常活动。

每种数据类型都由其数据格式定义,其中包括:

  • 字段:与数据类型相关联的特定字段或通用字段。例如,血氧饱和度 (SpO2) 数据类型具有“标题”“备注”和“百分比”等字段。
  • 类型:长整型、双精度型、字符串型或枚举型。
  • 属性:只读、必需、可选或验证范围。

数据类型列表

了解可用数据类型以充分利用 Health Platform。 Health Platform 支持下表中显示的数据类型。数据类型按照其格式(示例、间隔或系列)进行归类。

SampleData 类型:

DataType.BasalMetabolicRateDataType BASAL_METABOLIC_RATE 必需
DataType.BloodGlucoseDataType BLOOD_GLUCOSE 必需和可选
DataType.BloodPressureDataType BLOOD_PRESSURE 必需和可选
DataType.BodyFatDataType BODY_FAT 必需
DataType.BodyTemperatureDataType BODY_TEMPERATURE 必需和可选
DataType.BoneMassDataType BONE_MASS 必需
DataType.CervicalMucusDataType CERVICAL_MUCUS 可选
DataType.CervicalPositionDataType CERVICAL_POSITION 可选
DataType.CyclingPedalingCadenceDataType CYCLING_PEDALING_CADENCE 必需
DataType.DateOfBirthDataType DATE_OF_BIRTH 只读
DataType.GenderDataType GENDER 只读
DataType.HeartRateDataType HEART_RATE 必需
DataType.HeightDataType HEIGHT 必需
DataType.HipCircumferenceDataType HIP_CIRCUMFERENCE 必需
DataType.HrvDifferentialIndexDataType HRV_DIFFERENTIAL_INDEX 必需
DataType.HrvRmssdDataType HRV_RMSSD 必需
DataType.HrvSDataType HRV_S 必需
DataType.HrvSd2DataType HRV_SD2 必需
DataType.HrvSdannDataType HRV_SDANN 必需
DataType.HrvSdnnDataType HRV_SDNN 必需
DataType.HrvSdnnIndexDataType HRV_SDNN_INDEX 必需
DataType.HrvSdnnIndexDataType HRV_SDNN_INDEX 必需
DataType.HrvSdsdDataType HRV_SDSD 必需
DataType.HrvTinnDataType HRV_TINN 必需
DataType.LeanBodyMassDataType LEAN_BODY_MASS 必需
DataType.LocationDataType LOCATION 必需
DataType.MenstruationDataType MENSTRUATION 可选
DataType.OvulationTestDataType OVULATION_TEST 必需
DataType.OxygenSaturationDataType OXYGEN_SATURATION 必需
DataType.PaceDataType PACE 必需
DataType.PowerDataType POWER 必需
DataType.RespiratoryRateDataType RESPIRATORY_RATE 必需
DataType.RestingHeartRateDataType RESTING_HEART_RATE 必需
DataType.SexualActivityDataType SEXUAL_ACTIVITY 必需
DataType.SpeedDataType SPEED 必需
DataType.StepsCadenceDataType STEPS_CADENCE 必需
DataType.Vo2MaxDataType VO2_MAX 必需和可选
DataType.WaistCircumferenceDataType WAIST_CIRCUMFERENCE 必需
DataType.WeightDataType WEIGHT 必需

IntervalData 类型:

DataType.ActiveEnergyDataType ACTIVE_ENERGY_BURNED 必需
DataType.ActiveTimeDataType ACTIVE_TIME 只读
DataType.ActivityEventDataType ACTIVITY_EVENT 必需
DataType.ActivityLapDataType ACTIVITY_LAP 可选
DataType.ActivitySessionDataType ACTIVITY_SESSION 必需
DataType.BasalEnergyDataType BASAL_ENERGY_BURNED 只读
DataType.DistanceDataType DISTANCE 必需
DataType.ElevationGainedDataType ELEVATION_GAINED 必需
DataType.FloorsClimbedDataType FLOORS_CLIMBED 必需
DataType.HydrationDataType HYDRATION 必需
DataType.NutritionDataType NUTRITION 可选
DataType.RepetitionsDataType REPETITIONS 必需
DataType.SleepSessionDataType SLEEP_SESSION 可选
DataType.SleepStageDataType SLEEP_STAGE 必需
DataType.StepsDataType STEPS 必需
DataType.SwimmingStrokesDataType SWIMMING_STROKES 必需和可选
DataType.TotalEnergyDataType TOTAL_ENERGY_BURNED 只读

SeriesData 类型:

DataType.CyclingPedalingCadenceSeriesDataType CYCLING_PEDALING_CADENCE 必需
DataType.HeartRateSeriesDataType HEART_RATE 必需
DataType.LocationSeriesDataType LOCATION 必需
DataType.PaceSeriesDataType PACE 必需
DataType.PowerSeriesDataType POWER 必需
DataType.SpeedSeriesDataType SPEED 必需
DataType.StepsCadenceSeriesDataType STEPS_CADENCE 必需

开发者函数

下面介绍了 Health Platform 中提供的一组标准数据函数。该平台针对原始数据提供了标准的插入、更新和删除功能。

读取 AggregatedData

该平台允许客户端对以下 AggregatedData 类型应用聚合函数:

  • StatisticalData:提供一组 SampleDataSeriesData 中的平均值、最小值或最大值,例如活动时段的最小心率和最大心率。
  • CumulativeData:提供 IntervalData 值的总和,例如每日间隔内的总步数。
  • CountData:提供底层 RawData 对象数量的简单计数,例如某一周的活动时段数。可以为示例、间隔和系列数据类型计算计数数据。

连接到 Health Platform API

HealthDataClient 是 Health Platform API 的入口点。

以下步骤介绍了如何连接到 Health Platform:

  1. 使用 HealthDataService.getClient 创建新的 HealthDataClient 实例。
  2. 然后,客户端应用必须使用 requestPermissions (Set) 方法向用户请求权限。

HealthDataClient 会自动管理它与底层存储层的关联,并处理传出请求和传入响应的所有进程间通信 (IPC) 及序列化进程。