Planowanie i sprawdzanie typów danych Health Connect

Health Connect przechowuje i strukturyzuje dane o zdrowiu i aktywności fizycznej. Uwzględnia też sposób pomiaru różnych typów danych. Te typy danych obejmują pomiary tętna wykonywane na bieżąco, liczbę kroków rejestrowaną w czasie oraz dane o śnie zbierane w sesjach.

Najpierw musisz poznać typy danych i uprawnienia oferowane przez Health Connect, aby móc zaplanować wymagania 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 do monitorowania zdrowia i aktywności fizycznej, aby zapewnić jak największą różnorodność. Health Connect ma na celu zapewnienie kompleksowego wglądu w dane o zdrowiu i aktywności fizycznej oraz ich przechowywanie. Te typy danych dzielą się na te kategorie:

  • Aktywność: rejestruje wszelkie działania użytkownika. Może ona obejmować aktywności związane ze zdrowiem i kondycją, takie jak bieganie i pływanie.
  • Pomiary ciała: ta kategoria obejmuje typowe dane związane z ciałem, takie jak waga użytkownika i jego podstawowa przemiana materii.
  • Śledzenie cyklu: rejestruje cykle menstruacyjne i powiązane z nimi dane, takie jak wynik testu owulacyjnego (tak/nie).
  • Odżywianie: obejmuje typy danych dotyczące nawodnienia i odżywiania. Pierwsza z nich określa, ile wody użytkownik wypija za jednym razem. Obejmuje on pola opcjonalne, takie jak kalorie, cukier i magnez.
  • Sen: rejestruje dane interwałowe dotyczące długości i rodzaju snu użytkownika.
  • Dane podstawowe: obejmują podstawowe informacje o ogólnym stanie zdrowia użytkownika. Obejmuje to dane takie jak temperatura ciała, poziom glukozy we krwi, ciśnienie krwi i nasycenie krwi tlenem.

Format typu danych

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

Z każdym typem danych są powiązane pola, które mogą być ogólne, np. timezoneOffset, lub szczegółowe, np. title, countpercentage. Niektóre pola używają prostych typów, takich jak long, double czy string, a inne – typów złożonych, np. wyliczeń i klas, takich jak InstantZoneOffset. Atrybuty tych pól mogą być wymagane lub opcjonalne. Niektóre atrybuty są tylko do odczytu, a niektóre są ograniczone do określonego zakresu wartości.

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

Dodatkowe atrybuty danych

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

  • Identyfikator Health Connect: każdy punkt danych otrzymuje w momencie utworzenia unikalny identyfikator (UID). Jest to przydatne w przypadku standardowych operacji odczytu i zapisu. Więcej informacji znajdziesz w sekcji Identyfikator Health Connect.
  • Czas ostatniej modyfikacji: sygnatura czasowa ostatniej aktualizacji rekordu. Jest generowany automatycznie przy pierwszym utworzeniu rekordu lub przy każdej aktualizacji.
  • Pochodzenie danych: Health Connect przechowuje informacje o aplikacji, z której pochodzą dane. Zawiera 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órego wartość podajesz ręcznie.
  • Identyfikator klienta: Health Connect udostępnia identyfikatory klientów, aby aplikacje klienckie mogły odwoływać się do danych za pomocą własnych identyfikatorów, co ułatwia rozwiązywanie konfliktów i synchronizację. Jest on wprowadzany do rekordu ręcznie.
  • Wersja rekordu klienta: oprócz identyfikatora klienta Health Connect udostępnia wersje, które pomagają śledzić zmiany podczas synchronizacji danych. Jest on dodawany do rekordu ręcznie.
  • Metoda rejestrowania: Health Connect pozwala sprawdzić, jak dane są rejestrowane. Obejmują one aplikacje pasywnie (automatycznie) rejestrujące dane oraz użytkowników aktywnie lub ręcznie rejestrujących dane.

Identyfikator Health Connect

Health Connect przypisuje unikalne identyfikatory (UID) nowo wstawionym obiektom danych, które identyfikują obiekty danych i odróżniają je od innych. Identyfikatory Health Connect przydają się w przypadku próśb o odczyt lub zapis. Identyfikatory Health Connect nie są identyczne z identyfikatorami klienta. Identyfikatory klienta są przypisywane przez aplikację klienta, a identyfikatory Health Connect – wyłącznie przez 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 sygnaturami czasowymi.
  • Niektóre przypadki użycia mogą wymagać przechowywania określonego identyfikatora Health Connect podczas przepływu pracy. Na przykład do pobrania i wyświetlenia użytkownikowi wpisu danych, który właśnie zarejestrował, wymagany jest konkretny identyfikator.

Czas w Health Connect

Wszystkie dane zapisywane w Health Connect muszą zawierać informacje o przesunięciu strefy. Określenie przesunięcia strefy umożliwia aplikacjom odczytywanie danych i przedstawianie ich w czasie cywilnym. Czas cywilny to czas lokalny, który jest istotny dla użytkownika, ale niekoniecznie jest to uniwersalny czas koordynowany (UTC).

W rzadkich przypadkach przesunięcie strefy może być niedostępne. W Androidzie 14 (poziom API 34) Health Connect ustawia przesunięcie strefy na podstawie domyślnej strefy czasowej urządzenia. W Androidzie 13 i starszych wersjach (API na poziomie 33 i niższym) można zapisywać dane w Health Connect bez podawania informacji o przesunięciu strefy czasowej, czego należy w miarę możliwości unikać.

Ustawienia czasu i strefy

Określanie informacji o przesunięciu strefy podczas zapisywania danych zapewnia informacje o strefie czasowej podczas odczytywania danych w Health Connect. W niektórych sytuacjach może się to jednak nie udać, np. gdy nie podano przesunięcia strefy. Aplikacja musi być przygotowana do obsługi obu rodzajów danych w sposób odpowiedni do Twojej konkretnej sytuacji.

Uprawnienia

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

Wersja 1.0.0-alpha10 lub nowsza

Informacje o uprawnieniach Przeczytaj deklarację uprawnień
Odczyty w tle android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND
Historia odczytów android.permission.health.READ_HEALTH_DATA_HISTORY

Typ klasy rekordu 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.READ_EXERCISE_ROUTE
android.permission.health.WRITE_EXERCISE
android.permission.health.WRITE_EXERCISE_ROUTE

Typ ćwiczenia

EXERCISE_TYPE_BIKING
EXERCISE_TYPE_BIKING_HAND
EXERCISE_TYPE_BIKING_MOUNTAIN
EXERCISE_TYPE_BIKING_ROAD
EXERCISE_TYPE_BIKING_SPINNING
EXERCISE_TYPE_BIKING_STATIONARY
EXERCISE_TYPE_BIKING_UTURN
EXERCISE_TYPE_CANOEING
EXERCISE_TYPE_CROSSFIT
EXERCISE_TYPE_DANCING
EXERCISE_TYPE_ELLIPTICAL
EXERCISE_TYPE_GOLF
EXERCISE_TYPE_HORSEBACK_RIDING
EXERCISE_TYPE_KAYAKING
EXERCISE_TYPE_KICKBOXING
EXERCISE_TYPE_MARTIAL_ARTS
EXERCISE_TYPE_PILATES
EXERCISE_TYPE_ROLLERBLADING
EXERCISE_TYPE_RUNNING
EXERCISE_TYPE_RUNNING_JOGGING
EXERCISE_TYPE_RUNNING_SAND
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
IntermenstrualBleeding 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
MindfulnessSession android.permission.health.READ_MINDFULNESS
android.permission.health.WRITE_MINDFULNESS
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
OxygenSaturation android.permission.health.READ_OXYGEN_SATURATION
android.permission.health.WRITE_OXYGEN_SATURATION
PlannedExerciseSession android.permission.health.READ_PLANNED_EXERCISE
android.permission.health.WRITE_PLANNED_EXERCISE
Wydajność android.permission.health.READ_POWER
android.permission.health.WRITE_POWER
RespiratoryRate android.permission.health.READ_RESPIRATORY_RATE
android.permission.health.WRITE_RESPIRATORY_RATE
RestingHeartRate 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 android.permission.health.READ_SKIN_TEMPERATURE
android.permission.health.WRITE_SKIN_TEMPERATURE
SleepSession android.permission.health.READ_SLEEP
android.permission.health.WRITE_SLEEP
Szybkość android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED
Kroki android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
StepsCadence 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 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 i starszych

Typ klasy rekordu 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.Exercise.READ
androidx.health.permission.Exercise.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

Typ ćwiczenia

EXERCISE_TYPE_BIKING
EXERCISE_TYPE_BIKING_HAND
EXERCISE_TYPE_BIKING_MOUNTAIN
EXERCISE_TYPE_BIKING_ROAD
EXERCISE_TYPE_BIKING_SPINNING
EXERCISE_TYPE_BIKING_STATIONARY
EXERCISE_TYPE_BIKING_UTURN
EXERCISE_TYPE_CANOEING
EXERCISE_TYPE_CROSSFIT
EXERCISE_TYPE_DANCING
EXERCISE_TYPE_ELLIPTICAL
EXERCISE_TYPE_GOLF
EXERCISE_TYPE_HORSEBACK_RIDING
EXERCISE_TYPE_KAYAKING
EXERCISE_TYPE_KICKBOXING
EXERCISE_TYPE_MARTIAL_ARTS
EXERCISE_TYPE_PILATES
EXERCISE_TYPE_ROLLERBLADING
EXERCISE_TYPE_RUNNING
EXERCISE_TYPE_RUNNING_JOGGING
EXERCISE_TYPE_RUNNING_SAND
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.HeartRateVariability.READ
androidx.health.permission.HeartRateVariability.WRITE
Wysokość androidx.health.permission.Height.READ
androidx.health.permission.Height.WRITE
Nawodnienie androidx.health.permission.Hydration.READ
androidx.health.permission.Hydration.WRITE
IntermenstrualBleeding 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.Menstruation.READ
androidx.health.permission.Menstruation.WRITE
Odżywianie androidx.health.permission.Nutrition.READ
androidx.health.permission.Nutrition.WRITE
OvulationTest androidx.health.permission.OvulationTest.READ
androidx.health.permission.OvulationTest.WRITE
OxygenSaturation androidx.health.permission.OxygenSaturation.READ
androidx.health.permission.OxygenSaturation.WRITE
PlannedExerciseSession androidx.health.permission.PlannedExerciseSession.READ
androidx.health.permission.PlannedExerciseSession.WRITE
Wydajność androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE
RespiratoryRate androidx.health.permission.RespiratoryRate.READ
androidx.health.permission.RespiratoryRate.WRITE
RestingHeartRate 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
Kroki androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE
StepsCadence androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE
TotalCaloriesBurned androidx.health.permission.TotalCaloriesBurned.READ
androidx.health.permission.TotalCaloriesBurned.WRITE
Pułap tlenowy 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 wdrożyć podczas prac nad usługą.

Przed przesłaniem aplikacji do Sklepu Play dokładnie sprawdź listę typów danych i uprawnień, których wymaga Twoja aplikacja. Dzięki temu możesz dokładnie zadeklarować sposób wykorzystania danych przez aplikację.

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