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ć:

  • Natychmiastowy odczyt lub obserwacja
  • Agregacja ze statystykami w danym przedziale czasu

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

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

Grupy typów danych

Google Fit zawiera te typy danych:

Typy danych publicznych
Standardowe typy danych udostępniane przez tę platformę mają prefiks „com.google”. Na przykład com.google.step_count.delta. Te typy danych rejestrują natychmiastowe odczyty danych o zdrowiu i samopoczuciu, w tym informacji o aktywności fizycznej, śnie i odżywianiu. Każda aplikacja może poprosić o odpowiednie uprawnienia do odczytu i zapisywania tych typów danych z wyjątkiem kilku typów danych o lokalizacji, które może odczytać tylko aplikacja, która je zapisała.

Aby dowiedzieć się więcej, zobacz:

Typy danych dotyczących zdrowia
Typy danych udostępniane przez platformę, które mają ograniczony dostęp z powodu potencjalnie wrażliwych danych. Więcej informacji znajdziesz w artykule Typy danych dotyczących zdrowia.
Typy danych zbiorczych
Typy danych do odczytywania informacji o zdrowiu i samopoczuciu zagregowanych według czasu lub typu aktywności. Więcej informacji znajdziesz w artykule Typy danych zbiorczych.
Prywatne niestandardowe typy danych
Niestandardowe typy danych zdefiniowane przez konkretną aplikację. Tylko aplikacja, która określa typ danych, może odczytywać i zapisywać dane tego typu. Więcej informacji znajdziesz w artykule Niestandardowe typy danych.

Używanie typów danych

Android

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

  • Aby rejestrować dane, za pomocą interfejsu Recording API utwórz subskrypcję dla każdego typu danych, który chcesz rejestrować.
  • Aby odczytać dane, użyj interfejsu History API i prześlij żądanie odczytu dla każdego typu danych.
  • Aby wstawić dane historyczne z przeszłości, użyj interfejsu History API i prześlij żądanie wstawiania dla każdego typu danych.
  • Aby tworzyć sesje, wstaw lub rejestruj dane z metadanymi sesji za pomocą interfejsu Sessions API.

Aby utworzyć punkty danych dla wewnętrznego obiektu DataType, przypisz wartości w prawidłowym formacie. Z przykładu poniżej dowiesz się, 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 w postaci zmapowanych wartości zmiennoprzecinkowych.

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ć i 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 wybrać jeden z tych typów danych, a nazwę typu danych i listę ich pól możesz uzyskać po pobraniu źródła danych ze sklepu fitness.

Na przykład reprezentacja źródła danych określa swój 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ą użytkownikom zrozumieć, do jakich typów danych chce uzyskać dostęp aplikacja Ułatwiają też przyznawanie aplikacjom uprawnień do korzystania z tych danych, ponieważ nie wymagają zatwierdzania poszczególnych typów danych. Użytkownicy przyznają te uprawnienia po pobraniu aplikacji.

Przykład ekranu zgody dla zakresów OAuth
Rys.2. Ekran zgody na zakresy protokołu OAuth

Gdy już przetestujesz aplikację na niewielkiej liczbie użytkowników, przed opublikowaniem aplikacji musisz poprosić o weryfikację na podstawie zakresów odpowiednich dla tych typów danych. Przeczytaj link do stron typów danych, aby dowiedzieć się, które zakresy obowiązują w przypadku poszczególnych typów danych.

Na przykład jeśli aplikacja ma odczytywać i zapisywać dane o ciśnieniu krwi, musi zadeklarować, że używa zarówno odczytu, jak i zapisu, oraz żąda obu zakresów. Jeśli zapisuje dane o ciśnieniu krwi na platformie Google Fit, wystarczy, że poprosi o zakres zapisu.

Wybieraj typy danych odpowiedzialnie. Nie proś o każdy typ danych, ponieważ aplikacja może ich potrzebować. Od określonych typów zależą zakresy, do których użytkownik jest proszony o przyznanie uprawnień. Pytaj tylko o typy danych, których potrzebuje Twoja aplikacja, aby użytkownicy z większym prawdopodobieństwem przyznali Ci dostęp. Użytkownicy łatwiej przyznają dostęp do ograniczonych, jasno opisanych zakresów.

Skorzystaj z tej tabeli, aby sprawdzić, czy zakresy, do których aplikacja potrzebuje dostępu, są poufne lub objęte ograniczeniami (co określa etapy 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 ograniczeniem
https://www.googleapis.com/auth/fitness.activity.write Zapisywanie danych o aktywności na platformie Google Fit Z ograniczeniem
https://www.googleapis.com/auth/fitness.blood_glucose.read Odczytywanie danych o poziomie glukozy we krwi z platformy Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.blood_glucose.write Zapisuj dane o glukozie we krwi na platformie Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.blood_pressure.read Odczytywanie danych o ciśnieniu z platformy Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.blood_pressure.write Zapisuj dane o ciśnieniu na platformie Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.body.read Odczytuj dane o pomiarach ciała (wzrost, waga, procent tkanki tłuszczowej) z platformy Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.body.write Zapisuj dane o pomiarach ciała na platformie Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.body_temperature.read Odczytywanie danych o temperaturze ciała z platformy Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.body_temperature.write Zapisuj dane o temperaturze ciała na platformie Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.heart_rate.read Odczytywanie danych o tętnie z platformy Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.heart_rate.write Zapisuj dane o tętnie na platformie Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.location.read Odczytywanie danych o lokalizacji z platformy Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.location.write Zapisz dane o lokalizacji na platformie Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.nutrition.read Odczytywanie danych żywieniowych z platformy Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.nutrition.write Zapisz dane żywieniowe na platformie Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Odczytywanie danych saturacji z platformy Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Zapisuj dane o saturacji na platformie Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.reproductive_health.read Odczytywanie danych dotyczących zdrowia reprodukcyjnego z platformy Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.reproductive_health.write Zapisywanie danych dotyczących zdrowia reprodukcyjnego na platformie Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.sleep.read Odczyt danych o śnie z platformy Google Fit. Z ograniczeniem
https://www.googleapis.com/auth/fitness.sleep.write Zapisuj dane o śnie na platformie Google Fit. Z ograniczeniem

Dodawanie nowych zakresów do istniejącej aplikacji

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

Sprawdzoną metodą jest poproszenie użytkowników o autoryzację zasobów w wtedy, gdy są potrzebne. Postępuj zgodnie ze wskazówkami dotyczącymi przesyłania prośby o przyrostową autoryzację.

Użytkownicy z większym prawdopodobieństwem udzielą dostępu, jeśli będą wiedzieć, dlaczego i w jaki sposób aplikacja wykorzystuje te dane:

  • Rozważ dodanie ekranu, który będzie ostrzegał lub informował użytkowników, że zostaną poproszeni o wybranie tych zakresów.
  • Wyjaśnij, dlaczego Twoja aplikacja prosi o dostęp do tych zakresów lub danych, aby użytkownicy mogli podjąć świadomą decyzję.

Dowiedz się więcej o sprawdzonych metodach dotyczących uprawnień aplikacji na Androidzie.