Health Connect przechowuje i organizuje dane o zdrowiu i aktywności fizycznej. Uwzględnia też sposób pomiaru różnych typów danych. Te typy danych obejmują natychmiastowe pomiary tętna, liczbę kroków wykonanych w czasie oraz dane o śnie zebrane w ramach sesji.
Ważne jest, aby zrozumieć, jakie typy danych i uprawnienia oferuje Health Connect. Dzięki temu dowiesz się, jakie są wymagania aplikacji. W związku z tym musisz przejrzeć typy danych, zanim dokończysz realizację wymagań.
Kategorie typów danych
Health Connect obsługuje typy danych używane w większości aplikacji do dbania o zdrowie i fitnessu, aby zapewnić jak największą różnorodność. Celem Health Connect jest zapewnienie kompleksowego wglądu w dane o zdrowiu i aktywności fizycznej oraz ich przechowywanie. Typy danych należące do tych kategorii:
- Aktywność: rejestruje wszystkie działania wykonywane przez użytkownika. Mogą to być aktywności zdrowotne i sportowe, takie jak bieganie, pływanie czy sen.
- Pomiar ciała: rejestruje typowe dane dotyczące organizmu, np. wagę użytkownika i podstawowe tempo metabolizmu.
- Śledzenie cyklu: rejestruje cykle menstruacyjne i powiązane z nimi punkty danych, np. binarny wynik testu owulacyjnego.
- Odżywianie: rejestruje dane o nawodnieniu i odżywianiu. Pierwsza wartość podaje, ile wody wypija dany użytkownik w pojedynczym napoju. To pole zawiera opcjonalne pola, takie jak kalorie, cukier i magnez.
- Sen: rejestruje dane interwałów związane z długością i typem snu użytkownika.
- Parametry życiowe: rejestruje kluczowe informacje o ogólnym stanie zdrowia użytkownika. Zawiera 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 ogólne, takie jak time
i zoneOffset
, lub specyficzne, np. title
, count
i percentage
.
Niektóre pola używają prostych typów, takich jak długie, liczby zmiennoprzecinkowe lub ciąg znaków, a w innych złożone, takie jak wyliczenia i klasy, takie jak 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 Jetpack.
Dodatkowe atrybuty danych
Dane w interfejsie Health Connect API zawierają też atrybuty metadanych opisane na tej liście:
- Identyfikator Health Connect: każdy punkt danych jest po utworzeniu przypisywany z unikalnym identyfikatorem (UID). Jest to przydatne w przypadku standardowych operacji odczytu i zapisu. Więcej informacji znajdziesz na stronie identyfikatora Health Connect.
- Ostatnia modyfikacja: wskazuje sygnaturę czasową ostatniej aktualizacji rekordu. Jest generowany automatycznie przy pierwszym utworzeniu rekordu lub przy każdej aktualizacji.
- Źródło danych: Health Connect przechowuje informacje o aplikacji, z której pochodzą dane. Zawiera on nazwę pakietu tego źródła, która jest automatycznie dodawana po utworzeniu.
- Urządzenie: Health Connect przechowuje informacje o urządzeniu, z którego pochodzą dane. Zawiera ona nazwę producenta i model urządzenia, którą możesz wpisać ręcznie.
- Client-ID: 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 ułatwia synchronizację. Jest ona dodawana do rekordu ręcznie.
- Wersja rekordu klienta: wraz z identyfikatorem klienta Health Connect udostępnia obsługę wersji, aby ułatwić śledzenie zmian podczas synchronizacji danych. Jest on przekazywany do rekordu ręcznie.
- Metoda rejestrowania: Health Connect pozwala zrozumieć, w jaki sposób są rejestrowane dane. Dotyczy to aplikacji rejestrujących dane pasywnie (automatycznie) oraz użytkowników rejestrujących dane aktywnie lub ręcznie.
Identyfikator Health Connect
Health Connect przypisuje unikalne identyfikatory (UID) do nowo wstawionych obiektów danych, które identyfikują obiekty danych i odróżniają je od innych. Identyfikatory Health Connect są przydatne w żądaniach odczytu lub zapisu. Identyfikatory Health Connect nie są identyczne z identyfikatorami klientów. Aplikacja kliencka przypisuje identyfikatory Client-ID, a Health Connect – tylko identyfikatory Health Connect.
Podczas pracy z identyfikatorami Health Connect pamiętaj o tych kwestiach:
- Sesje mają 1 identyfikator Health Connect, ale dane w ramach sesji mają własne identyfikatory.
- Identyfikatory Health Connect nie są powiązane z sygnaturami czasowymi ani powiązane z nimi.
- Niektóre przypadki użycia mogą wymagać przechowywania określonego identyfikatora Health Connect podczas przepływu pracy. Na przykład do pobrania i pokazania użytkownikowi wpisu danych, który właśnie zarejestrował, wymagany jest określony 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 lokalny czas, który odnosi się do użytkownika, ale niekoniecznie według uniwersalnego czasu koordynowanego (UTC).
W rzadkich przypadkach przesunięcie strefy może być niedostępne. W takiej sytuacji na Androidzie 14 (poziom interfejsu API 34) Health Connect ustawia przesunięcie strefy na podstawie domyślnej strefy czasowej urządzenia. W Androidzie 13 i starszych (poziom interfejsu API 33 i starszych) można zapisywać dane w Health Connect bez podawania informacji o przesunięciu strefy. W miarę możliwości należy tego unikać.
Ustawienia godziny i strefy
Określenie informacji o przesunięciu strefy podczas zapisywania danych dostarcza informacji o strefie czasowej podczas odczytywania danych w Health Connect. Może się to jednak nie udać w niektórych sytuacjach, np. gdy nie jest podane przesunięcie strefy. Aplikacja musi być przygotowana do obsługi obu rodzajów danych w sposób odpowiedni do danej sytuacji.
Uprawnienia
Zanim aplikacja poprosi o uprawnienia, musi je najpierw zadeklarować w pliku manifestu. W tabelach poniżej znajdziesz pełne informacje o mapowaniu typów danych i ich uprawnień.
1.0.0-alfa10 i nowsze wersje
Typ klasy rekordu | Deklaracja uprawnień do odczytu i zapisu |
---|---|
SpaloneKalorie aktywne |
android.permission.health.READ_ACTIVE_CALORIES_BURNED
android.permission.health.WRITE_ACTIVE_CALORIES_BURNED |
Temperatura ciała |
android.permission.health.READ_BASAL_BODY_TEMPERATURE
android.permission.health.WRITE_BASAL_BODY_TEMPERATURE |
Współczynnik metaboliczny |
android.permission.health.READ_BASAL_METABOLIC_RATE
android.permission.health.WRITE_BASAL_METABOLIC_RATE |
Glukoza we krwi |
android.permission.health.READ_BLOOD_GLUCOSE
android.permission.health.WRITE_BLOOD_GLUCOSE |
Ciśnienie krwi |
android.permission.health.READ_BLOOD_PRESSURE
android.permission.health.WRITE_BLOOD_PRESSURE |
Tkanka tłuszczowa |
android.permission.health.READ_BODY_FAT
android.permission.health.WRITE_BODY_FAT |
Temperatura ciała |
android.permission.health.READ_BODY_TEMPERATURE
android.permission.health.WRITE_BODY_TEMPERATURE |
MasaWodyW Wodach |
android.permission.health.READ_BODY_WATER_MASS
android.permission.health.WRITE_BODY_WATER_MASS |
Kość masa |
android.permission.health.READ_BONE_MASS
android.permission.health.WRITE_BONE_MASS |
Śluz szyjki macicy |
android.permission.health.READ_CERVical_MUCUS
android.permission.health.WRITE_CERVical_MUCUS |
Pedaling na rowerze |
android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE |
Odległość |
android.permission.health.READ_DISTANCE
android.permission.health.WRITE_DISTANCE |
Przewyższenie |
android.permission.health.READ_ELEVATION_GAINED
android.permission.health.WRITE_ELEVATION_GAINED |
Ćwiczenie |
android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE |
Pokonane piętra |
android.permission.health.READ_FLOORS_CLIMBED
android.permission.health.WRITE_FLOORS_CLIMBED |
Tętno |
android.permission.health.READ_HEART_RATE
android.permission.health.WRITE_HEART_RATE |
RMSD |
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 okresowe |
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 |
Okres menstruacji |
android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION |
Odżywianie |
android.permission.health.READ_NUTRITION
android.permission.health.WRITE_NUTRITION |
Test owulacyjny |
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 |
Władza |
android.permission.health.READ_POWER
android.permission.health.WRITE_POWER |
Częstość oddychania |
android.permission.health.READ_RESPIRATORY_RATE
android.permission.health.WRITE_RESPIRATORY_RATE |
Tętno spoczynkowe |
android.permission.health.READ_RESTING_HEART_RATE
android.permission.health.WRITE_RESTING_HEART_RATE |
Aktywność seksualna |
android.permission.health.READ_SEXUAL_ACTIVITY
android.permission.health.WRITE_SEXUAL_ACTIVITY |
SleepSession |
android.permission.health.READ_SLEEP
android.permission.health.WRITE_SLEEP |
Szybkość |
android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED |
Ścieżka kroków |
android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS |
Kroki |
android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS |
Łączna liczbaKalorii |
android.permission.health.READ_TOTAL_CALORIES_BURNED
android.permission.health.WRITE_TOTAL_CALORIES_BURNED |
Vo2Max. |
android.permission.health.READ_VO2_MAX
android.permission.health.WRITE_VO2_MAX |
Waga |
android.permission.health.READ_WEIGHT
android.permission.health.WRITE_WEIGHT |
Pchnięcia wózka inwalidzkiego |
android.permission.health.READ_WHEELCHAIR_PUSHES
android.permission.health.WRITE_WHEELCHAIR_PUSHES |
1.0.0-alfa09 i starsze
Typ klasy rekordu | Deklaracja uprawnień do odczytu i zapisu |
---|---|
SpaloneKalorie aktywne |
androidx.health.permission.ActiveCaloriesBurned.READ
androidx.health.permission.ActiveCaloriesBurned.WRITE |
Temperatura ciała |
androidx.health.permission.BasalBodyTemperature.READ
androidx.health.permission.BasalBodyTemperature.WRITE |
Współczynnik metaboliczny |
androidx.health.permission.BasalMetabolicRate.READ
androidx.health.permission.BasalMetabolicRate.WRITE |
Glukoza we krwi |
androidx.health.permission.BloodGlucose.READ
androidx.health.permission.BloodGlucose.WRITE |
Ciśnienie krwi |
androidx.health.permission.BloodPressure.READ
androidx.health.permission.BloodPressure.WRITE |
Tkanka tłuszczowa |
androidx.health.permission.BodyFat.READ
androidx.health.permission.BodyFat.WRITE |
Temperatura ciała |
androidx.health.permission.BodyTemperature.READ
androidx.health.permission.BodyTemperature.WRITE |
MasaWodyW Wodach |
androidx.health.permission.BodyWaterMass.READ
androidx.health.permission.BodyWaterMass.WRITE |
Kość masa |
androidx.health.permission.BoneMass.READ
androidx.health.permission.BoneMass.WRITE |
Śluz szyjki macicy |
androidx.health.permission.CervicalMucus.READ
androidx.health.permission.CervicalMucus.WRITE |
Pedaling na rowerze |
androidx.health.permission.CyclingPedalingCadence.READ
androidx.health.permission.CyclingPedalingCadence.WRITE |
Odległość |
androidx.health.permission.Odległość.READ
androidx.health.permission.Odległość.WRITE |
Przewyższenie |
androidx.health.permission.ElevationGained.READ
androidx.health.permission.ElevationGained.WRITE |
Ćwiczenie |
androidx.health.permission.PracticeSession.READ
androidx.health.permission.TrackersessionSession.WRITE |
Pokonane piętra |
androidx.health.permission.FloorsClimbed.READ
androidx.health.permission.FloorsClimbed.WRITE |
Tętno |
androidx.health.permission.HeartRate.READ
androidx.health.permission.HeartRate.WRITE |
RMSD |
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 okresowe |
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 |
Test owulacyjny |
androidx.health.permission.OvulationTest.READ
androidx.health.permission.OvulationTest.WRITE |
Nasycenie tlenem |
androidx.health.permission.OxygenSaturation.READ
androidx.health.permission.OxygenSaturation.WRITE |
Władza |
androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE |
Częstość oddychania |
androidx.health.permission.Częstość oddychania.READ
androidx.health.permission.Współczynnik oddychania.WRITE |
Tętno spoczynkowe |
androidx.health.permission.RestingHeartRate.READ
androidx.health.permission.RestingHeartRate.WRITE |
Aktywność seksualna |
androidx.health.permission.GenderActivity.READ
androidx.health.permission.GenderActivity.WRITE |
SleepSession |
androidx.health.permission.SleepSession.READ
androidx.health.permission.SleepSession.WRITE |
Szybkość |
androidx.health.permission.Speed.READ
androidx.health.permission.Speed.WRITE |
Ścieżka kroków |
androidx.health.permission.StepsCadence.READ
androidx.health.permission.StepsCadence.WRITE |
Kroki |
androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE |
Łączna liczbaKalorii |
androidx.health.permission.TotalCaloriesBurned.READ
androidx.health.permission.TotalCaloriesBurned.WRITE |
Vo2Max. |
androidx.health.permission.Vo2Max.READ
androidx.health.permission.Vo2Max.WRITE |
Waga |
androidx.health.permission.Weight.READ
androidx.health.permission.Weight.WRITE |
Pchnięcia wózka inwalidzkiego |
androidx.health.permission.WheelchairPushes.READ
androidx.health.permission.WheelchairPushes.WRITE |
Przejrzyj typy danych i uprawnienia
Po zaplanowaniu typów danych i uprawnień możesz je wdrożyć podczas tworzenia aplikacji.
Gdy sprawdzasz aplikację przed przesłaniem jej do Sklepu Play, dokładnie sprawdź listę typów danych i uprawnień wymaganych przez nią. Dzięki temu możesz dokładnie zadeklarować użycie danych przez aplikację.
Po opublikowaniu aplikacji w Sklepie Play może pojawić się komunikat o błędzie informujący o tym, że aplikacja nie może uzyskać dostępu do typów danych Health Connect z powodu specjalnego zatwierdzenia. W takim przypadku musisz poprosić o dostęp do danego typu danych za pomocą formularza deklaracji dewelopera. Więcej informacji o tym procesie znajdziesz w artykule na temat prośby o dostęp do typów danych w Health Connect.