Interfejs API platformy Health

Health Platform API to interfejs API na Androida, który zapewnia programistom jeden interfejs do odczytywania, zapisywania i udostępniania historycznych danych użytkownika o zdrowiu, samopoczuciu i kondycji fizycznej. Dzięki Health Platform użytkownicy mają kontrolę nad swoimi danymi. Użytkownicy mogą kontrolować, które aplikacje mają dostęp do odczytu lub zapisu różnych typów danych. Typy danych interfejsu Health Platform API obejmują m.in. wzrost i tętno.

Interfejs Health Platform API udostępnia użytkownikom mechanizm przechowywania i udostępniania, który pozwala im wybrać aplikacje, które mogą wyświetlać ich dane o zdrowiu, kondycji i samopoczuciu. Dzięki temu deweloperzy aplikacji mogą wyświetlać użytkownikom pełniejsze informacje o stanie ich danych, a użytkownicy mogą skuteczniej monitorować swoje dane.

Zestaw programistów interfejsu Health Platform API zawiera wszystko, czego potrzebują deweloperzy aplikacji na Androida, aby udostępnić użytkownikom dostęp do danych o zdrowiu i dobrze zorganizowanym życiu na wybranych urządzeniach Samsunga. Pozwala on aplikacjom wykonywać operacje zbiorcze, takie jak wstawianie, usuwanie i odczytywanie danych.

Rozpocznij

Korzystając z Health Platform, pamiętaj o tych kwestiach:

  • Aplikacje klienckie muszą uzyskać szczegółowe uprawnienia do odczytu lub zapisu od użytkownika.
  • Użytkownik może w dowolnym momencie odmówić przyznania uprawnień lub je cofnąć.
  • Interfejs Health Platform API obsługuje tylko wybrane urządzenia Samsung.
  • HealthDataClient to klient platformy Health Platform i punkt wejścia do tej platformy.

Poniższy obraz przedstawia niezbędne kroki integracji, które muszą wykonać deweloperzy:

kroki integracji, w tym konfigurowanie pakietu SDK, dostęp i uprawnienia oraz operacje CRUD;
Rysunek 1. Kroki integracji z Health Platform

Pliki do wydania

Wersja 1 platformy Health Platform zawiera:

  • Pakiet SDK klienta: dołącz ten pakiet SDK do aplikacji, aby korzystać z interfejsu Health Platform API. Pakiet SDK to repozytorium Maven, które możesz bezpośrednio uwzględnić w plikach Gradle do kompilacji aplikacji.

Instalowanie platformy Health

Aby zainstalować Health Platform, wykonaj te czynności:

W pliku build.gradle w katalogu głównym aplikacji dodaj repozytorium w ten sposób:

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

Dodaj zależność od pakietu SDK platformy Health w pliku build.gradlemodułu, jak w tym przykładzie:

Kotlin

dependencies { . . . implementation("com.google.android.libraries.healthdata:health-data-api:1.0.0-alpha01") }

Groovy

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

Dane

Health Platform przechowuje i uporządkowuje dane o zdrowiu i aktywności fizycznej. Uwzględnia ona też główne różnice w sposobie pomiaru danych o różnym charakterze. Na przykład pomiar tętna jest wykonywany natychmiast, ale licznik kroków jest mierzony w ciągu określonego czasu.

Oto główne obiekty w Health Platform i różnice między nimi:

  • RawData: rekord pomiaru i danych.
  • DataType: parametr określający typowe rodzaje danych o zdrowiu i kondycji fizycznej, takie jak tętno, zawartość tkanki tłuszczowej lub temperatura ciała, oraz ich formaty, np. pola, tylko do odczytu lub opcjonalne.
  • SampleData: obiekt RawData, który jest chwilowym pomiarem, takim jak tętno, ciśnienie krwi lub prędkość biegu.
  • IntervalData: obiekt RawData, który jest kumulatywnym pomiarem wykonanym w okresie czasu, np. liczba wykonanych kroków, przebyta odległość lub spalone kalorie.
  • SeriesData: obiekt RawData, który zawiera sekwencję pomiarów w danym przedziale czasu. SeriesData jest szczególnie przydatny do danych z czujników o wysokiej częstotliwości, takich jak ciągłe próbki tętna podczas sesji aktywności.

Każda z 3 klas RawData odpowiada konkretnej podklasie typu DataType: SampleData, IntervalDataSeriesData odpowiadają odpowiednio typom SampleDataType, IntervalDataTypeSeriesDataType.

Każdy obiekt RawData ma przypisany unikalny identyfikator (UID) przez platformę Health Platform podczas jego wstawiania. Możesz użyć tego identyfikatora UID, aby odwoływać się do konkretnego obiektu RawDataw żądaniach odczytu, aktualizacji lub usunięcia.

Typy danych

Platforma Health Platform obejmuje szeroki zestaw typów danych, które są powszechnie używane w aplikacjach do dbania o zdrowie i kondycję. Dane przechowywane przy użyciu dostępnych typów danych zapewniają użytkownikom kompleksowy wgląd w historyczne dane o zdrowiu, kondycji i samopoczuciu, a także informacje o ich codziennej aktywności.

Każdy typ danych jest zdefiniowany przez format danych, który obejmuje:

  • Pola: pola specyficzne lub ogólne powiązane z typem danych. Na przykład typ danych „Nasycenie krwi tlenem (SpO2)” zawiera pola takie jak „Tytuł”, „Uwagi” i „Procent”.
  • Typ: long, double, string lub enum.
  • Atrybut: tylko do odczytu, wymagany, opcjonalny lub zakres walidacji.

Lista typów danych

Wykorzystaj w pełni możliwości Health Platform, poznając dostępne typy danych. Platforma Health obsługuje typy danych podane w tabeli poniżej. Typy danych są uporządkowane według formatu: próbka, przedział lub seria.

SampleData typy:

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

IntervalData typy:

DataType.ActiveEnergyDataType ACTIVE_ENERGY_BURNED Wymagane
DataType.ActiveTimeDataType ACTIVE_TIME Tylko do odczytu
DataType.ActivityEventDataType ACTIVITY_EVENT Wymagane
DataType.ActivityLapDataType ACTIVITY_LAP Opcjonalny
DataType.ActivitySessionDataType ACTIVITY_SESSION Wymagane
DataType.BasalEnergyDataType BASAL_ENERGY_BURNED Tylko do odczytu
DataType.DistanceDataType DISTANCE Wymagane
DataType.ElevationGainedDataType ELEVATION_GAINED Wymagane
DataType.FloorsClimbedDataType FLOORS_CLIMBED Wymagane
DataType.HydrationDataType HYDRATION Wymagane
DataType.NutritionDataType NUTRITION Opcjonalny
DataType.RepetitionsDataType REPETITIONS Wymagane
DataType.SleepSessionDataType SLEEP_SESSION Opcjonalny
DataType.SleepStageDataType SLEEP_STAGE Wymagane
DataType.StepsDataType STEPS Wymagane
DataType.SwimmingStrokesDataType SWIMMING_STROKES Wymagany i opcjonalny
DataType.TotalEnergyDataType TOTAL_ENERGY_BURNED Tylko do odczytu

SeriesData typy:

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

Funkcje dla programistów

Poniżej opisujemy zestaw standardowych funkcji danych dostępnych na platformie Health Platform. Platforma udostępnia standardowe funkcje wstawiania, aktualizowania i usuwania danych nieprzetworzonych.

Odczytywanie danych zbiorczych

Platforma umożliwia klientom stosowanie funkcji agregacji do tych typów AggregatedData:

  • StatisticalData: średnia, minimalna lub maksymalna wartość w zbiorze SampleData lub SeriesData, np. minimalna i maksymalna częstotliwość tętna podczas sesji aktywności.
  • CumulativeData: suma wartości IntervalData, np. łączna liczba kroków w przeciągu dnia.
  • CountData: prosta liczba obiektów RawData, np. liczba sesji aktywności w danym tygodniu. Dane zliczające można obliczać w przypadku typów danych próbka, przedział i seria.

Łączenie z interfejsem Health Platform API

HealthDataClient to punkt wejścia do interfejsu Health Platform API.

Aby połączyć się z platformą Health Platform, wykonaj te czynności:

  1. Użyj HealthDataService.getClient, aby utworzyć nowe instancje HealthDataClient.
  2. Aplikacja klienta musi poprosić użytkownika o zezwolenie, używając metody requestPermissions (Set).

HealthDataClient automatycznie zarządza połączeniem z podstawową warstwą pamięci masowej i obsługuje całą komunikację między procesami (IPC) oraz serializację wychodzących żądań i przychodzących odpowiedzi.