Typy danych

Google Fit udostępnia zestaw typów danych o zdrowiu i samopoczuciu w przestrzeni nazw com.google.

Typy danych określają format wartości w punktach danych. Punkt danych może reprezentować:

  • odczyt lub obserwację w danym momencie;
  • zagregowane dane ze statystykami z określonego przedziału czasu.

Google Fit definiuje typy danych dla obserwacji w danym momencie i typy danych dla danych zbiorczych. Punkty danych składają się z wartości pól typu danych i informacji o sygnaturze czasowej. Punkty reprezentujące obserwacje w danym momencie zawierają sygnaturę czasową, a punkty zagregowanego typu danych zawierają też czas rozpoczęcia przedziału.

Google Fit umożliwia też definiowanie nowych typów danych.

Grupy typów danych

Google Fit ma te typy danych:

Publiczne typy danych
Standardowe typy danych udostępniane przez platformę mają prefiks „com.google”. Na przykład com.google.step_count.delta. Te typy danych rejestrują odczyty w danym momencie dotyczące danych o zdrowiu i samopoczuciu, w tym aktywności fizycznej, snu i odżywiania. Każda aplikacja może poprosić o odpowiednie uprawnienia do odczytywania i zapisywania tych typów danych, z wyjątkiem kilku typów danych o lokalizacji, które mogą być odczytywane tylko przez aplikację, która je zapisała.

Więcej informacji znajdziesz w tych artykułach:

Typy danych o zdrowiu
Typy danych udostępniane przez platformę, do których dostęp jest ograniczony ze względu na potencjalnie dane wrażliwe. Więcej informacji znajdziesz w artykule Typy danych o zdrowiu.
Zagregowane typy danych
Typy danych do odczytywania informacji o zdrowiu i samopoczuciu zagregowanych według czasu lub typu aktywności. Więcej informacji znajdziesz w artykule Zagregowane typy danych.
Prywatne niestandardowe typy danych
Niestandardowe typy danych zdefiniowane przez konkretną aplikację. Tylko aplikacja, która definiuje typ danych, może odczytywać i zapisywać dane tego typu. Więcej informacji znajdziesz w artykule Niestandardowe typy danych.

Korzystanie z typów danych

Android

Na Androidzie typy danych są definiowane jako pola publiczne klasy DataType. Sposób wywoływania interfejsów Fitness API za pomocą typu danych zależy od tego, co chcesz osiągnąć:

  • Aby rejestrować dane, użyj interfejsu Recording API, aby utworzyć subskrypcję dla każdego typu danych, który chcesz rejestrować.
  • Aby odczytywać dane, użyj interfejsu History API, aby przesłać żądanie odczytu dla każdego typu danych.
  • Aby wstawić dane historyczne z przeszłości, użyj interfejsu History API, aby przesłać żądanie wstawienia dla każdego typu danych.
  • Aby tworzyć sesje, użyj interfejsu Sessions API, aby wstawiać lub rejestrować dane z metadanymi sesji.

Aby utworzyć punkty danych dla obiektu w danym momencie DataType, przypisz wartości w odpowiednim formacie. W tym przykładzie pokazujemy, jak przypisać produkt spożywczy jako ciąg znaków, typ posiłku jako stałą z klasy Field oraz zawartość składników odżywczych jako zmapowane wartości zmiennoprzecinkowe.

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    ...
    .build()

val nutrients = mapOf(
    Field.NUTRIENT_TOTAL_FAT to 0.4f,
    Field.NUTRIENT_SODIUM to 1f,
    Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
    .setTimestamp(now, TimeUnit.MILLISECONDS)
    .setField(Field.FIELD_FOOD_ITEM, "banana")
    .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
    .setField(Field.FIELD_NUTRIENTS, nutrients)
    .build()

Po ustawieniu punktów danych w aplikacji możesz wstawiać, odczytywać lub usuwać dane historyczne za pomocą interfejsu History API.

REST

Zasób dataSources zawiera typ danych (i listę jego pól) dla każdego źródła danych. Podczas tworzenia źródeł danych możesz określić jeden z tych typów danych. Nazwę typu danych i listę jego pól możesz uzyskać, gdy pobierzesz źródło danych ze sklepu Fitness.

Na przykład reprezentacja źródła danych określa jego typ danych w ten sposób:

{
"dataStreamId": "exampleDataSourceId",
...
"dataType": {
  "name": "com.google.step_count.delta"
},
...
}

Zakresy autoryzacji

Zakresy autoryzacji obejmują grupy typów danych, do których użytkownik może autoryzować dostęp aplikacji. Pomagają one użytkownikom zrozumieć, do jakich danych aplikacja chce uzyskać dostęp. Ułatwiają też przyznawanie aplikacjom uprawnień do korzystania z tych danych, ponieważ nie trzeba zatwierdzać każdego typu danych z osobna. Użytkownicy przyznają te uprawnienia po pobraniu aplikacji.

Przykład ekranu zgody na zakresy OAuth
Rysunek 2.Ekran zgody na zakresy protokołu OAuth.

Po przetestowaniu aplikacji przez niewielką liczbę użytkowników musisz przed jej uruchomieniem poprosić o weryfikację na podstawie zakresów związanych z tymi typami danych. Przeczytaj strony dotyczące typów danych, do których linki znajdziesz powyżej, aby dowiedzieć się, które zakresy mają zastosowanie do poszczególnych typów danych.

Jeśli na przykład Twoja aplikacja musi odczytywać i zapisywać dane ciśnienia krwi, musi zadeklarować, że wykonuje zarówno odczyt, jak i zapis, oraz poprosić o oba zakresy. Jeśli zapisuje tylko dane ciśnienia krwi na platformie Google Fit, musi poprosić tylko o zakres zapisu.

Wybieraj typy danych odpowiedzialnie. Nie proś o każdy typ danych na wypadek, gdyby Twoja aplikacja mogła go potrzebować. Określone typy danych decydują o tym, o jakie zakresy użytkownik zostanie poproszony o przyznanie uprawnień. Proś tylko o typy danych, których potrzebuje Twoja aplikacja, aby użytkownicy chętniej przyznawali dostęp. Użytkownicy chętniej przyznają dostęp do ograniczonych, jasno opisanych zakresów.

Z tej tabeli dowiesz się, czy zakresy, do których Twoja aplikacja potrzebuje dostępu, są wrażliwe lub objęte ograniczeniami (co określa kroki weryfikacji, które musisz wykonać):

Zakres Opis Kategoria
https://www.googleapis.com/auth/fitness.activity.read Odczytywanie danych o aktywności z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.activity.write Zapisywanie danych o aktywności na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.blood_glucose.read Odczytywanie danych o poziomie glukozy we krwi z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.blood_glucose.write Zapisywanie danych o poziomie glukozy we krwi na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.blood_pressure.read Odczytywanie danych o ciśnieniu krwi z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.blood_pressure.write Zapisywanie danych o ciśnieniu krwi na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.body.read Odczytywanie danych o pomiarach ciała (wzrost, waga, procent tkanki tłuszczowej) z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.body.write Zapisywanie danych o pomiarach ciała na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.body_temperature.read Odczytywanie danych o temperaturze ciała z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.body_temperature.write Zapisywanie danych o temperaturze ciała na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.heart_rate.read Odczytywanie danych o tętnie z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.heart_rate.write Zapisywanie danych o tętnie na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.location.read Odczytywanie danych o lokalizacji z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.location.write Zapisywanie danych o lokalizacji na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.nutrition.read Odczytywanie danych o odżywianiu z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.nutrition.write Zapisywanie danych o odżywianiu na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Odczytywanie danych o saturacji z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Zapisywanie danych o saturacji na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.reproductive_health.read Odczytywanie danych o zdrowiu reprodukcyjnym z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.reproductive_health.write Zapisywanie danych o zdrowiu reprodukcyjnym na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.sleep.read Odczytywanie danych o śnie z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.sleep.write Zapisywanie danych o śnie na platformie Google Fit. Z ograniczonym dostępem

Dodawanie nowych zakresów do istniejącej aplikacji

Gdy zaktualizujesz aplikację, aby poprosić o nowy zakres (np. jeśli dodasz nowe zakresy snu lub tętna albo zakres odczytu), użytkownicy zobaczą prośbę o dostęp do tych zakresów i będą mogli przyznać lub odrzucić dostęp.

Najlepiej jest prosić użytkowników o autoryzację zasobów w momencie, gdy są one potrzebne. Postępuj zgodnie ze wskazówkami dotyczącymi proszenia o autoryzację stopniową.

Użytkownicy chętniej przyznają dostęp, jeśli rozumieją, dlaczego i jak Twoja aplikacja korzysta z tych danych:

  • Rozważ dodanie ekranu, który ostrzega lub informuje użytkowników, że zostaną poproszeni o te zakresy.
  • Jasno wyjaśnij, dlaczego Twoja aplikacja prosi o dostęp do tych zakresów lub danych, aby użytkownicy mogli podjąć świadomą decyzję.

Więcej informacji o sprawdzonych metodach dotyczących uprawnień aplikacji na Androida.