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. time
i zoneOffset
, lub szczegółowe, np. title
, count
i percentage
.
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 Instant
i ZoneOffset
. 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 ćwiczeniaEXERCISE_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 ćwiczeniaEXERCISE_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.