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. time
i zoneOffset
, lub specyficzne, np. title
, count
i percentage
.
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.