Typy danych

Google Fit oferuje zestaw typów danych dotyczących zdrowia i samopoczucia w przestrzeni nazw com.google.

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

  • Błyskawiczne odczyt lub obserwacja
  • Agregacja ze statystykami w danym przedziale czasu

Google Fit definiuje typy danych do natychmiastowej obserwacji oraz typy danych zbiorczych. Punkty danych zawierają wartości pól typu danych i sygnatury czasowej. Punkty, które reprezentują natychmiastowe obserwacje, obejmują sygnatury czasowe, a punkty danych zbiorczych zawierają również godzinę rozpoczęcia przedziału czasu.

W Google Fit możesz też definiować nowe typy danych.

Grupy typów danych

W Google Fit są dostępne te typy danych:

Typy danych publicznych
Standardowe typy danych dostarczane przez platformę mają prefiks „com.google”. na przykład com.google.step_count.delta. Te typy danych odczytują dane dotyczące zdrowia i samopoczucia, takie jak aktywność, sen i odżywianie. Każda aplikacja może żądać odpowiednich uprawnień do odczytu i zapisu w przypadku 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.

Aby dowiedzieć się więcej, zobacz:

Typy danych dotyczących zdrowia
Typy danych udostępniane przez platformę, które mają ograniczony dostęp ze względu na potencjalnie poufne dane. Więcej informacji znajdziesz w artykule na temat typów danych zdrowotnych.
Typy danych zbiorczych
Typy danych, które pozwalają odczytywać informacje o zdrowiu i samopoczuciu 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 ten typ danych, może odczytywać i zapisywać dane tego typu. Więcej informacji znajdziesz w artykule na temat niestandardowych typów danych.

Korzystanie z typów danych

Android

Na urządzeniach z Androidem typy danych definiuje się 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, użyj interfejsu Recording API, aby utworzyć subskrypcję dla każdego typu danych, które chcesz nagrywać.
  • Aby odczytać dane, skorzystaj z interfejsu History API, aby przesłać żądanie odczytu dotyczące każdego typu danych.
  • Aby wstawić dane historyczne z przeszłości, użyj History API, aby przesłać żądanie wstawiania dla każdego typu danych.
  • Aby utworzyć sesje, użyj interfejsu Sessions API do wstawienia lub zarejestrowania danych z metadanymi sesji.

Aby utworzyć punkty danych na potrzeby stałego obiektu DataType, przypisz wartości w poprawnym formacie. Poniższy przykład pokazuje, jak przypisać produkt spożywczy jako ciąg znaków, typ posiłku jako stałą z klasy Field i zawartość składników odżywczych jako pływające wartości.

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, a po pobraniu źródła danych ze sklepu fitness można uzyskać jego nazwę i listę jego pól.

Reprezentacja źródła danych określa na przykład 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 zezwalać aplikacji na dostęp. Pomagają użytkownikom zrozumieć, do jakich danych aplikacja ma mieć dostęp. Ułatwiają też przyznawanie aplikacjom uprawnień do używania tych danych bez konieczności zatwierdzania poszczególnych typów danych. Użytkownicy przyznają te uprawnienia po pobraniu aplikacji.

Przykład ekranu zgody zakresów OAuth
Ilustracja 2.Ekran zgody dotyczący zakresu OAuth

Po przetestowaniu aplikacji na małej grupie użytkowników przed jej opublikowaniem musisz poprosić o weryfikację na podstawie zakresów odpowiednich dla tych typów danych. Zapoznaj się ze stronami o typach danych, do których linki znajdują się powyżej, aby dowiedzieć się, które zakresy mają zastosowanie do poszczególnych typów danych.

Jeśli aplikacja musi np. odczytywać i zapisywać dane o ciśnieniu krwi, musi zadeklarować, że odczytuje i zapisuje oraz odczytuje oba zakresy. Jeśli zapisuje tylko dane o ciśnieniu krwi na platformie Google Fit, wystarczy wysłać żądanie zakresu zapisu.

Wybierz typy danych odpowiedzialnie. Nie zgłaszaj prośby o każdy typ danych, na wypadek gdyby aplikacja mogła go potrzebować. Określone typy określają zakresy, do których użytkownik jest uprawniony do przyznania uprawnień. Poproś tylko o typy danych, których potrzebuje Twoja aplikacja, aby zwiększyć szansę na przyznanie dostępu. Użytkownicy łatwiej przyznają dostęp do ograniczonych, jasno opisanych zakresów.

Skorzystaj z tej tabeli, aby sprawdzić, czy zakresy, do których aplikacja musi mieć dostęp, są poufne czy ograniczone (określa etapy weryfikacji, które musisz wykonać):

Zakres Opis Kategoria
https://www.googleapis.com/auth/fitness.activity.read Odczytywanie danych 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 Odczyt danych o glukozie z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.blood_glucose.write Zapisywanie danych dotyczących 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 ciśnienia na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.body.read Odczytywanie danych pomiaru 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 dotyczących pomiarów ciała na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.body_temperature.read Odczytywanie danych temperatury ciała z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.body_temperature.write Zapisywanie danych temperatury ciała na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.heart_rate.read Odczytywanie danych tętna z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.heart_rate.write Zapisywanie danych na temat tętna na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.location.read Odczytywanie danych 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 dotyczących odżywiania z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.nutrition.write Zapisywanie danych dotyczących odżywiania na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Odczytywanie danych saturacji z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Zapisywanie danych 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 na temat zdrowia reprodukcyjnego na platformie Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.sleep.read Odczytywanie danych snu z platformy Google Fit. Z ograniczonym dostępem
https://www.googleapis.com/auth/fitness.sleep.write Zapisywanie danych na temat snu 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. 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 o przyznanie im dostępu.

Sprawdzoną metodą jest wysyłanie do użytkowników prośby o autoryzację w momencie, gdy ich potrzebujesz. Postępuj zgodnie ze wskazówkami dotyczącymi przyrostowej autoryzacji.

Użytkownicy z większym prawdopodobieństwem przyznają dostęp, jeśli będą wiedzieć, dlaczego i w jaki sposób aplikacja używa tych danych:

  • Rozważ dodanie ekranu z ostrzeżeniem lub informacją dla użytkowników, że zostaną poproszeni o te zakresy.
  • Wyjaśnij, dlaczego aplikacja prosi o dostęp do tych zakresów lub danych, aby użytkownicy mogli podejmować świadome decyzje.

Poznaj sprawdzone metody dotyczące uprawnień aplikacji na Androida.