Planowanie i sprawdzanie typów danych Health Connect

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.