Planowanie i sprawdzanie typów danych Health Connect

Health Connect przechowuje i uporządkowuje dane o zdrowiu i aktywności fizycznej. Uwzględnia ona też sposób pomiaru różnych typów danych. Te typy danych obejmują pomiary tętna, liczbę kroków zarejestrowaną w ciągu czasu i dane o śnie zarejestrowane podczas sesji.

Najpierw musisz się dowiedzieć, jakie typy danych i uprawnienia oferuje Health Connect, aby móc zaplanować wymagania dotyczące aplikacji. Zanim sfinalizujesz wymagania, musisz sprawdzić typy danych.

Kategorie typów danych

Health Connect obsługuje typy danych, które są używane w większości aplikacji związanych ze zdrowiem i kondycją fizyczną, aby zapewnić jak największą różnorodność. Health Connect ma na celu zapewnienie kompleksowego widoku i przechowywania danych o zdrowiu i aktywności fizycznej. Te typy danych dzielą się na te kategorie:

  • Aktywność:rejestruje każdą aktywność użytkownika. Może to obejmować aktywność fizyczną i dbanie o zdrowie, np. bieganie czy pływanie.
  • Pomiar ciała:obejmuje podstawowe dane dotyczące ciała, takie jak waga użytkownika i podstawowa przemiana materii.
  • Śledzenie cyklu: obejmuje cykle menstruacyjne i powiązane punkty danych, takie jak wynik testu owulacyjnego.
  • Odżywianie: obejmuje typy danych dotyczące nawodnienia i odżywiania. Pierwszy z nich określa, ile wody użytkownik wypija podczas jednego picia. Drugi zawiera pola opcjonalne, takie jak kalorie, cukier i magnez.
  • Sen:zawiera dane dotyczące długości i rodzaju snu użytkownika.
  • Informacje podstawowe:zawierają one najważniejsze informacje o ogólnym stanie zdrowia użytkownika. Obejmuje ona takie dane jak temperatura ciała, glukoza we krwi, ciśnienie krwi i nasycenie tlenem.

Format typu danych

Typy danych w Health Connect są przechowywane w obiektach, które są podklasami typu Record.

W przypadku każdego typu danych istnieją powiązane pola, które mogą być ogólne, np. timezoneOffset, lub specyficzne, np. title, countpercentage. Niektóre pola używają typów prostych, takich jak long, double czy string, a inne – typów złożonych, takich jak wyliczenia i klasy, np. Instant i ZoneOffset. Atrybuty tych pól mogą być wymagane lub opcjonalne. Niektóre atrybuty są tylko do odczytu, a inne są ograniczone do określonego zakresu wartości.

Pełną listę dostępnych typów danych i ich pól znajdziesz w klasach w Jetpacku.

Dodatkowe atrybuty danych

Dane w interfejsie Health Connect API obejmują też atrybuty metadanych, opisane na liście poniżej:

  • Identyfikator Health Connect: podczas tworzenia każdemu punktowi danych przypisuje się unikalny identyfikator (UID). Jest to przydatne w przypadku standardowych operacji odczytu i zapisu. Więcej informacji znajdziesz w Health Connect ID.
  • Czas ostatniej modyfikacji: sygnatura czasowa ostatniej instancji, w której rekord został zaktualizowany. Jest generowany automatycznie przy pierwszym utworzeniu rekordu lub przy każdej jego aktualizacji.
  • Pochodzenie danych: Health Connect przechowuje informacje o aplikacji, z której pochodzą dane. Zawiera on nazwę pakietu tego źródła, która jest dodawana automatycznie podczas tworzenia.
  • Urządzenie: Health Connect przechowuje informacje o urządzeniu, z którego pochodzą dane. Zawiera producenta i model urządzenia, których wartości podajesz ręcznie.
  • Identyfikator klienta: Health Connect udostępnia identyfikatory klientów, aby aplikacje klienta mogły odwoływać się do danych za pomocą własnych identyfikatorów. Ułatwia to rozwiązywanie konfliktów i ułatwia synchronizację. Dane te są dodawane do rekordu ręcznie.
  • Wersja rekordu klienta: oprócz identyfikatora klienta Health Connect udostępnia wersjonowanie, które ułatwia śledzenie zmian podczas synchronizacji danych. Dane te są dodawane do rekordu ręcznie.
  • Metoda rejestrowania: Health Connect pozwala zrozumieć, jak dane są rejestrowane. Te metody obejmują aplikacje rejestrujące dane pasywnie (automatycznie) oraz użytkowników rejestrujących dane aktywnie lub ręcznie.

Identyfikator Health Connect

Health Connect przypisuje unikalne identyfikatory (UID) nowo wstawionych obiektów danych, które identyfikują te obiekty i odróżniają je od innych. Identyfikatory Health Connect są przydatne w przypadku żądań odczytu lub zapisu. Identyfikatory Health Connect nie są identyczne z identyfikatorami klienta. Aplikacja klienta przypisuje identyfikatory klienta, a Health Connect przypisuje wyłącznie identyfikatory Health Connect.

Podczas pracy z identyfikatorami Health Connect pamiętaj o tych kwestiach:

  • Sesje mają jeden identyfikator Health Connect, ale dane w sesjach mają własne identyfikatory Health Connect.
  • Identyfikatory Health Connect nie są powiązane z danymi o czasie.
  • Niektóre przypadki użycia mogą wymagać przechowywania określonego identyfikatora Health Connect podczas przepływu pracy. Na przykład aby pobrać i wyświetlić użytkownikowi właśnie zarejestrowany przez niego wpis danych, potrzebny jest określony identyfikator.

Czas spędzony w Health Connect

Wszystkie dane zapisywane w Health Connect muszą zawierać informacje o zmianie strefy czasowej. Określenie przesunięcia strefy czasowej umożliwia aplikacjom odczytywanie danych w czasie cywilnym. Czas cywilny to czas lokalny, który jest odpowiedni dla użytkownika, ale niekoniecznie w uniwersalnym czasie koordynowanym (UTC).

W rzadkich przypadkach przesunięcie strefy może być niedostępne. W Androidzie 14 (poziom interfejsu API 34) Health Connect ustawia przesunięcie strefy czasowej na podstawie domyślnej strefy czasowej urządzenia. W przypadku systemu Android 13 i starszych wersji (poziom interfejsu API 33 i starsze) można zapisywać dane w Health Connect bez podawania informacji o zmianie strefy czasowej, czego należy unikać, gdy tylko jest to możliwe.

Ustawienia czasu i strefy

Podanie informacji o zmianie strefy czasowej podczas zapisywania danych zapewnia informacje o strefie czasowej podczas odczytu danych w Health Connect. Może się to jednak nie udać w pewnych sytuacjach, np. gdy nie podano przesunięcia strefy. Aplikacja musi być przygotowana do obsługi obu rodzajów danych w sposób odpowiedni do Twoich konkretnych okoliczności.

Uprawnienia

Zanim poprosisz o jakiekolwiek uprawnienia, aplikacja musi najpierw zadeklarować je w pliku manifestu. Pełne mapowanie typów danych i ich uprawnień znajdziesz w tabelach poniżej.

W przypadku wersji 1.0.0-alpha10 lub nowszej

Typ klasy rekordów Deklaracja uprawnień do odczytu i zapisu
ActiveCaloriesBurned android.permission.health.READ_ACTIVE_CALORIES_BURNED
android.permission.health.WRITE_ACTIVE_CALORIES_BURNED
BasalBodyTemperature android.permission.health.READ_BASAL_BODY_TEMPERATURE
android.permission.health.WRITE_BASAL_BODY_TEMPERATURE
BasalMetabolicRate android.permission.health.READ_BASAL_METABOLIC_RATE
android.permission.health.WRITE_BASAL_METABOLIC_RATE
BloodGlucose android.permission.health.READ_BLOOD_GLUCOSE
android.permission.health.WRITE_BLOOD_GLUCOSE
BloodPressure android.permission.health.READ_BLOOD_PRESSURE
android.permission.health.WRITE_BLOOD_PRESSURE
BodyFat android.permission.health.READ_BODY_FAT
android.permission.health.WRITE_BODY_FAT
BodyTemperature android.permission.health.READ_BODY_TEMPERATURE
android.permission.health.WRITE_BODY_TEMPERATURE
BodyWaterMass android.permission.health.READ_BODY_WATER_MASS
android.permission.health.WRITE_BODY_WATER_MASS
BoneMass android.permission.health.READ_BONE_MASS
android.permission.health.WRITE_BONE_MASS
CervicalMucus android.permission.health.READ_CERVICAL_MUCUS
android.permission.health.WRITE_CERVICAL_MUCUS
CyclingPedalingCadence android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE
Dystans android.permission.health.READ_DISTANCE
android.permission.health.WRITE_DISTANCE
ElevationGained android.permission.health.READ_ELEVATION_GAINED
android.permission.health.WRITE_ELEVATION_GAINED
ExerciseSession android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE
FloorsClimbed android.permission.health.READ_FLOORS_CLIMBED
android.permission.health.WRITE_FLOORS_CLIMBED
HeartRate android.permission.health.READ_HEART_RATE
android.permission.health.WRITE_HEART_RATE
HeartRateVariabilityRmssd android.permission.health.READ_HEART_RATE_VARIABILITY
android.permission.health.WRITE_HEART_RATE_VARIABILITY
Wysokość android.permission.health.READ_HEIGHT
android.permission.health.WRITE_HEIGHT
Nawodnienie android.permission.health.READ_HYDRATION
android.permission.health.WRITE_HYDRATION
Krwawienie międzymiesiączkowe android.permission.health.READ_INTERMENSTRUAL_BLEEDING
android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING
LeanBodyMass android.permission.health.READ_LEAN_BODY_MASS
android.permission.health.WRITE_LEAN_BODY_MASS
MenstruationFlow android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION
MenstruationPeriod android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION
Odżywianie android.permission.health.READ_NUTRITION
android.permission.health.WRITE_NUTRITION
OvulationTest android.permission.health.READ_OVULATION_TEST
android.permission.health.WRITE_OVULATION_TEST
Nasycenie tlenem android.permission.health.READ_OXYGEN_SATURATION
android.permission.health.WRITE_OXYGEN_SATURATION
PlannedExercise android.permission.health.READ_PLANNED_EXERCISE
android.permission.health.WRITE_PLANNED_EXERCISE
Moc android.permission.health.READ_POWER
android.permission.health.WRITE_POWER
Częstotliwość oddechów android.permission.health.READ_RESPIRATORY_RATE
android.permission.health.WRITE_RESPIRATORY_RATE
spoczynkowa częstotliwość tętna, android.permission.health.READ_RESTING_HEART_RATE
android.permission.health.WRITE_RESTING_HEART_RATE
SexualActivity android.permission.health.READ_SEXUAL_ACTIVITY
android.permission.health.WRITE_SEXUAL_ACTIVITY
SkinTemperature androidx.health.permission.SkinTemperature.READ
androidx.health.permission.SkinTemperature.WRITE
SleepSession android.permission.health.READ_SLEEP
android.permission.health.WRITE_SLEEP
Szybkość android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED
StepsCadence android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
Kroki android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
TotalCaloriesBurned android.permission.health.READ_TOTAL_CALORIES_BURNED
android.permission.health.WRITE_TOTAL_CALORIES_BURNED
Pułap tlenowy VO2 android.permission.health.READ_VO2_MAX
android.permission.health.WRITE_VO2_MAX
Waga android.permission.health.READ_WEIGHT
android.permission.health.WRITE_WEIGHT
WheelchairPushes android.permission.health.READ_WHEELCHAIR_PUSHES
android.permission.health.WRITE_WHEELCHAIR_PUSHES

W przypadku wersji 1.0.0-alpha09 lub starszych

Typ klasy rekordów Deklaracja uprawnień do odczytu i zapisu
ActiveCaloriesBurned androidx.health.permission.ActiveCaloriesBurned.READ
androidx.health.permission.ActiveCaloriesBurned.WRITE
BasalBodyTemperature androidx.health.permission.BasalBodyTemperature.READ
androidx.health.permission.BasalBodyTemperature.WRITE
BasalMetabolicRate androidx.health.permission.BasalMetabolicRate.READ
androidx.health.permission.BasalMetabolicRate.WRITE
BloodGlucose androidx.health.permission.BloodGlucose.READ
androidx.health.permission.BloodGlucose.WRITE
BloodPressure androidx.health.permission.BloodPressure.READ
androidx.health.permission.BloodPressure.WRITE
BodyFat androidx.health.permission.BodyFat.READ
androidx.health.permission.BodyFat.WRITE
BodyTemperature androidx.health.permission.BodyTemperature.READ
androidx.health.permission.BodyTemperature.WRITE
BodyWaterMass androidx.health.permission.BodyWaterMass.READ
androidx.health.permission.BodyWaterMass.WRITE
BoneMass androidx.health.permission.BoneMass.READ
androidx.health.permission.BoneMass.WRITE
CervicalMucus androidx.health.permission.CervicalMucus.READ
androidx.health.permission.CervicalMucus.WRITE
CyclingPedalingCadence androidx.health.permission.CyclingPedalingCadence.READ
androidx.health.permission.CyclingPedalingCadence.WRITE
Dystans androidx.health.permission.Distance.READ
androidx.health.permission.Distance.WRITE
ElevationGained androidx.health.permission.ElevationGained.READ
androidx.health.permission.ElevationGained.WRITE
ExerciseSession androidx.health.permission.ExerciseSession.READ
androidx.health.permission.ExerciseSession.WRITE
FloorsClimbed androidx.health.permission.FloorsClimbed.READ
androidx.health.permission.FloorsClimbed.WRITE
HeartRate androidx.health.permission.HeartRate.READ
androidx.health.permission.HeartRate.WRITE
HeartRateVariabilityRmssd androidx.health.permission.HeartRateVariabilityRmssd.READ
androidx.health.permission.HeartRateVariabilityRmssd.WRITE
Wysokość androidx.health.permission.Height.READ
androidx.health.permission.Height.WRITE
Nawodnienie androidx.health.permission.Hydration.READ
androidx.health.permission.Hydration.WRITE
Krwawienie międzymiesiączkowe androidx.health.permission.IntermenstrualBleeding.READ
androidx.health.permission.IntermenstrualBleeding.WRITE
LeanBodyMass androidx.health.permission.LeanBodyMass.READ
androidx.health.permission.LeanBodyMass.WRITE
MenstruationFlow androidx.health.permission.MenstruationFlow.READ
androidx.health.permission.MenstruationFlow.WRITE
Odżywianie androidx.health.permission.Nutrition.READ
androidx.health.permission.Nutrition.WRITE
OvulationTest androidx.health.permission.OvulationTest.READ
androidx.health.permission.OvulationTest.WRITE
Nasycenie tlenem androidx.health.permission.OxygenSaturation.READ
androidx.health.permission.OxygenSaturation.WRITE
Moc androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE
Częstotliwość oddechów androidx.health.permission.RespiratoryRate.READ
androidx.health.permission.RespiratoryRate.WRITE
spoczynkowa częstotliwość tętna, androidx.health.permission.RestingHeartRate.READ
androidx.health.permission.RestingHeartRate.WRITE
SexualActivity androidx.health.permission.SexualActivity.READ
androidx.health.permission.SexualActivity.WRITE
SleepSession androidx.health.permission.SleepSession.READ
androidx.health.permission.SleepSession.WRITE
Szybkość androidx.health.permission.Speed.READ
androidx.health.permission.Speed.WRITE
StepsCadence androidx.health.permission.StepsCadence.READ
androidx.health.permission.StepsCadence.WRITE
Kroki androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE
TotalCaloriesBurned androidx.health.permission.TotalCaloriesBurned.READ
androidx.health.permission.TotalCaloriesBurned.WRITE
Pułap tlenowy VO2 androidx.health.permission.Vo2Max.READ
androidx.health.permission.Vo2Max.WRITE
Waga androidx.health.permission.Weight.READ
androidx.health.permission.Weight.WRITE
WheelchairPushes androidx.health.permission.WheelchairPushes.READ
androidx.health.permission.WheelchairPushes.WRITE

Sprawdzanie typów danych i uprawnień

Po zaplanowaniu typów danych i uprawnień możesz je zaimplementować podczas tworzenia.

Sprawdzając aplikację przed przesłaniem jej do Sklepu Play, sprawdź ponownie listę typów danych i uprawnień, których wymaga aplikacja. Dzięki temu możesz dokładnie zadeklarować wykorzystanie danych przez aplikację.

Gdy przygotowujesz się do opublikowania aplikacji w Sklepie Play, oświadcz o dostępie do typów danych Health Connect, których używa Twoja aplikacja. W przeciwnym razie użytkownicy mogą zobaczyć komunikat o błędzie, że aplikacja nie może uzyskać dostępu do typów danych Health Connect, ponieważ wymagają one specjalnej zgody.