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 dotyczących zdrowia, samopoczucia i aktywności fizycznej. Użytkownicy mają kontrolę nad swoimi danymi w ramach Platformy Zdrowia. Użytkownicy kontrolują, które aplikacje mają dostęp do odczytu i zapisu różnych typów danych. Typy danych interfejsu Health Platform API obejmują m.in. wzrost i tętno.

Interfejs Health Platform API zapewnia użytkownikom mechanizm przechowywania i udostępniania danych, który pozwala im wybierać, które aplikacje mogą uzyskiwać dostęp do ich osobistych danych dotyczących zdrowia, aktywności fizycznej i samopoczucia oraz je wyświetlać. Dzięki temu deweloperzy aplikacji mogą wyświetlać użytkownikom pełniejszy obraz ich stanu zdrowia, a użytkownicy mogą skuteczniej monitorować swoje dane.

Pakiet SDK interfejsu Health Platform API zapewnia deweloperom aplikacji na Androida wszystko, czego potrzebują, aby umożliwić dostęp do danych użytkownika dotyczących zdrowia i dobrego samopoczucia na wybranych urządzeniach Samsunga. Umożliwia on też aplikacjom wykonywanie operacji zbiorczych, takich jak wstawianie, usuwanie i odczytywanie danych.

Rozpocznij

Podczas korzystania z Platformy Zdrowia pamiętaj o tych kwestiach:

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

Na ilustracji poniżej przedstawiono niezbędne kroki integracji, które deweloperzy muszą wykonać:

Kroki integracji, w tym konfiguracja pakietu SDK, dostęp i uprawnienia oraz operacje CRUD.
Rysunek 1. Kroki integracji z platformą Health.

Pliki wersji

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 kompilacji Gradle aplikacji.

Instalowanie platformy Zdrowie

Aby zainstalować Platformę Zdrowia, wykonaj te czynności:

W pliku głównym build.gradle aplikacji dodaj repozytorium, jak pokazano w przykładzie poniżej:

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

Dodaj zależność od pakietu SDK platformy Health do pliku build.gradle modułu, jak pokazano w przykładzie poniżej:

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

Platforma Zdrowie przechowuje i strukturyzuje dane o zdrowiu i aktywności fizycznej. Uwzględnia też podstawowe różnice w sposobie pomiaru różnych typów danych. Na przykład pomiar tętna jest wykonywany natychmiast, a liczba kroków jest mierzona w określonym czasie.

Oto główne obiekty na platformie Zdrowie i różnice między nimi:

  • RawData: pomiar i rekord danych.
  • DataType: specyfikacja typowych rodzajów danych o zdrowiu i aktywności, takich jak tętno, poziom tkanki tłuszczowej czy temperatura ciała, oraz ich formatów, np. pól, tylko do odczytu lub opcjonalnych.
  • SampleData: obiekt RawData, który jest pomiarem chwilowym, np. tętna, ciśnienia krwi lub prędkości biegu.
  • IntervalData: obiekt RawData, który jest pomiarem skumulowanym wykonywanym w określonym czasie, np. liczba kroków, przebyta odległość lub spalone kalorie.
  • SeriesData: obiekt RawData, który zawiera sekwencję pomiarów w określonym czasie. SeriesData jest szczególnie przydatny w przypadku 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 DataType: SampleData, IntervalDataSeriesData odpowiadają odpowiednio klasom SampleDataType, IntervalDataTypeSeriesDataType.

Każdemu obiektowi RawData platforma Health Platform przypisuje unikalny identyfikator (UID) w momencie wstawienia. Możesz użyć tego identyfikatora UID, aby odwołać się do konkretnego RawDataobiektu w żądaniach odczytu, aktualizacji lub usunięcia.

Typy danych

Platforma Zdrowie obejmuje szeroki zakres typów danych, które są powszechnie używane w aplikacjach do dbania o zdrowie i kondycję. Dane przechowywane w ramach dostępnych typów danych zapewniają użytkownikom kompleksowy wgląd w ich historyczne dane dotyczące zdrowia, kondycji i samopoczucia, co pozwala im lepiej zrozumieć swoje codzienne czynności.

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

  • Pola: konkretne lub ogólne pola powiązane z typem danych. Na przykład typ danych nasycenie krwi tlenem (SpO2) ma pola takie jak Tytuł, Notatki i Procent.
  • Typ: long, double, string lub enum.
  • Atrybut: tylko do odczytu, wymagany, opcjonalny lub zakres weryfikacji.

Lista typów danych

Wykorzystaj w pełni potencjał Platformy Zdrowia, poznając dostępne typy danych. Platforma Zdrowie obsługuje typy danych podane w tej tabeli. Typy danych są uporządkowane według formatu: próbka, przedział lub seria.

SampleData typu:

SampleData
Tabela 1. Typy platform zdrowotnych
DataType.BasalMetabolicRateDataType BASAL_METABOLIC_RATE Wymagane
DataType.BloodGlucoseDataType BLOOD_GLUCOSE Wymagane i opcjonalne
DataType.BloodPressureDataType BLOOD_PRESSURE Wymagane i opcjonalne
DataType.BodyFatDataType BODY_FAT Wymagane
DataType.BodyTemperatureDataType BODY_TEMPERATURE Wymagane i opcjonalne
DataType.BoneMassDataType BONE_MASS Wymagane
DataType.CervicalMucusDataType CERVICAL_MUCUS Opcjonalny
DataType.CervicalPositionDataType CERVICAL_POSITION Opcjonalne
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 Opcjonalne
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 Wymagane i opcjonalne
DataType.WaistCircumferenceDataType WAIST_CIRCUMFERENCE Wymagane
DataType.WeightDataType WEIGHT Wymagane

IntervalData typu:

DataType.ActiveEnergyDataType ACTIVE_ENERGY_BURNED Wymagane
DataType.ActiveTimeDataType ACTIVE_TIME Tylko do odczytu
DataType.ActivityEventDataType ACTIVITY_EVENT Wymagane
DataType.ActivityLapDataType ACTIVITY_LAP Opcjonalne
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 Opcjonalne
DataType.RepetitionsDataType REPETITIONS Wymagane
DataType.SleepSessionDataType SLEEP_SESSION Opcjonalne
DataType.SleepStageDataType SLEEP_STAGE Wymagane
DataType.StepsDataType STEPS Wymagane
DataType.SwimmingStrokesDataType SWIMMING_STROKES Wymagane i opcjonalne
DataType.TotalEnergyDataType TOTAL_ENERGY_BURNED Tylko do odczytu

SeriesData typu:

Tabela 3. Typy platform zdrowotnychSeriesData
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 znajdziesz opis standardowych funkcji danych dostępnych na platformie Health Platform. Platforma udostępnia standardowe funkcje wstawiania, aktualizowania i usuwania danych pierwotnych.

Odczytywanie obiektu AggregatedData

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

  • StatisticalData:średnie, minimalne lub maksymalne wartości w zbiorze SampleData lub SeriesData, np. minimalne i maksymalne tętno podczas sesji aktywności.
  • CumulativeData: suma wartości IntervalData, np. łączna liczba kroków w ciągu dnia.
  • CountData: prosta liczba obiektów bazowychRawData, np. liczba sesji aktywności w danym tygodniu. Dane liczbowe można obliczać dla typów danych próbki, przedziału i serii.

Łączenie z interfejsem Health Platform API

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

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

  1. Użyj kodu HealthDataService.getClient, aby utworzyć nowe instancje HealthDataClient.
  2. Aplikacja kliencka musi następnie poprosić użytkownika o zezwolenie za pomocą metody requestPermissions (Set).

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