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: Health Platform API를 사용하려면 클라이언트 SDK를 애플리케이션에 포함합니다. SDK는 애플리케이션 Gradle 빌드 파일에 직접 포함할 수 있는 Maven 저장소입니다.

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의 특정 서브클래스에 상응합니다. SampleData, IntervalData, SeriesDataSampleDataType, IntervalDataType, SeriesDataType에 각각 상응합니다.

RawData 객체는 삽입될 때 Health Platform에서 고유 식별자(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: SampleData 또는 SeriesData 집합의 평균값 또는 최솟값, 최댓값(예: 활동 세션 중 최소 심박수, 최대 심박수)입니다.
  • CumulativeData: IntervalData 값의 합계입니다(예: 일일 간격의 총 걸음 수).
  • CountData: 특정 주의 활동 세션 수와 같은 기본 RawData 객체 수의 단순한 개수입니다. 개수 데이터는 샘플, 간격, 연속 데이터 유형에 관해 계산할 수 있습니다.

Health Platform API에 연결

HealthDataClient는 Health Platform API의 진입점입니다.

다음 단계에서는 Health Platform에 연결하는 방법을 설명합니다.

  1. HealthDataService.getClient를 사용하여 새 HealthDataClient 인스턴스를 만듭니다.
  2. 그런 다음 클라이언트 앱은 requestPermissions (Set) 메서드를 사용하여 사용자에게 권한을 요청해야 합니다.

HealthDataClient는 기본 저장소 레이어에 대한 연결을 자동으로 관리하고 발신 요청 및 수신 응답의 모든 프로세스 간 통신(IPC)과 직렬화를 처리합니다.