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
, SeriesData
는 SampleDataType
, 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에 연결하는 방법을 설명합니다.
HealthDataService.getClient
를 사용하여 새HealthDataClient
인스턴스를 만듭니다.- 그런 다음 클라이언트 앱은
requestPermissions (Set)
메서드를 사용하여 사용자에게 권한을 요청해야 합니다.
HealthDataClient
는 기본 저장소 레이어에 대한 연결을 자동으로 관리하고 발신 요청 및 수신 응답의 모든 프로세스 간 통신(IPC)과 직렬화를 처리합니다.
추천 서비스
- 참고: JavaScript가 사용 중지되어 있으면 링크 텍스트가 표시됩니다.
- 활성 데이터와 운동
- 수동적 데이터 업데이트
- Wear OS에서 Jetpack Compose 사용