Health Platform API

Health Platform API 是一個 Android API,可讓開發人員透過單一介面讀取、寫入及分享使用者的歷來健康、保健和運動資料。使用者可以透過 Health Platform 控管自己的資料,掌控各應用程式對於不同類型資料的讀取或寫入權限。Health Platform API 資料類型包括身高、心率等。

Health Platform API 提供儲存和共用機制,方便使用者選取哪些應用程式可以存取及顯示個人的健康、運動和保健資料。如此一來,應用程式開發人員就能更全面地掌握使用者的健康狀態,讓使用者更有效地監控資料。

Health Platform API 軟體開發人員套件提供所有必要功能,可讓 Android 應用程式開發人員存取特定 Samsung 裝置上的使用者健康與保健資料,並允許應用程式執行大量作業,例如插入、刪除及讀取資料。

開始使用

使用 Health Platform 時,請留意下列事項:

  • 用戶端應用程式必須向使用者取得適當的讀取或寫入權限。
  • 使用者隨時可以拒絕授予權限或撤銷權限。
  • Health Platform API 僅支援特定 Samsung 裝置。
  • HealthDataClient 是 Health Platform 的用戶端,也是 Health Platform 的進入點。

下圖顯示開發人員必須採取的整合步驟:

整合步驟

版本檔案

Health Platform 第 1 版包含下列內容:

  • 用戶端 SDK:在應用程式中加入這個 SDK,以便使用 Health Platform API。SDK 是一個 Maven 存放區,您可以直接納入應用程式 Gradle 建構檔案中。

安裝 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心率、體脂肪或體溫等常用健康與健身資料類型,以及其格式 (例如:欄位、唯讀、選用) 的說明器。
  • SampleDataRawData 物件能即時測量,例如心率、血壓或跑步速度等資訊。
  • IntervalDataRawData 物件,為一段時間內的累計測量資料,例如行走的步數、移動的距離或燃燒的卡路里。
  • SeriesDataRawData 物件用於封裝一段時間內的一系列測量結果。SeriesData 特別適合用於高頻率感應器資料,例如活動時段的連續心率樣本。

三個 RawData 類別分別對應了 DataType 的特定子類別:SampleDataIntervalData,以及 SeriesData 對應 SampleDataTypeIntervalDataTypeSeriesDataType

每個 RawData 物件在插入時都會由 Health Platform 指派一個專屬 ID (UID)。您可以使用這個 UID 在讀取、更新或刪除要求中參照特定 RawData 物件。

資料類型

Health Platform 包含多種在健康和健身應用程式裡常用的資料類型。使用者可透過以可用資料類型儲存的資料,全面瞭解自己的健康、健身和保健資料紀錄,深入分析自己的日常活動。

每種資料類型都是透過資料格式加以定義,包括:

  • 欄位:與資料類型相關的特定或一般欄位。例如,血液血氧濃度 (SpO2) 資料類型具有「標題」、「附註」和「百分比」等欄位。
  • 類型:Long (長整數)、Double (雙倍精度浮點數)、String (字串) 或 Enum (列舉)。
  • 屬性:唯讀、必要、選用或驗證範圍。

資料類型清單

瞭解可用資料類型,充分運用 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 組合中的平均值、最小值或最大值,例如活動時段中的最小心率和最大心率。
  • CumulativeDataIntervalData 值的加總,例如每日間隔的總步數。
  • CountData提供基礎 RawData 物件數量的簡單計數,例如某一週的活動時段數。系統會針對樣本、間隔和系列資料類型計算資料。

連線至 Health Platform API

HealthDataClient 是 Health Platform API 的進入點。

下列步驟說明如何連線至 Health Platform:

  1. 使用 HealthDataService.getClient 建立新的 HealthDataClient 例項。
  2. 接著,用戶端應用程式必須使用 requestPermissions (Set) 方法要求使用者授予權限。

HealthDataClient 會自動管理自身與基礎儲存空間層的連線,並處理傳出要求與傳入回應的所有處理序間通訊 (IPC) 和序列化作業。