Tworzenie funkcji związanych z krokami za pomocą interfejsu Google Health API

Interfejs Google Health API śledzi kroki użytkownika i dane o aktywności za pomocą typu danych interwału steps. Liczba kroków to podstawowy wskaźnik codziennej aktywności fizycznej, który pomaga deweloperom śledzić postępy w fitnessie, obliczać wydatek energetyczny i tworzyć podsumowania codziennej aktywności dla użytkowników.

Dowiedz się, jak odczytywać i strukturyzować dane o liczbie kroków w aplikacji, aby zapewnić użytkownikom jak najlepsze wrażenia.

Obsługiwane typy danych

Interfejs API obsługuje ten typ danych do śledzenia liczby kroków:

Tabela: typy danych o krokach w interfejsie Google Health API
Typ danych Dostępne
operacje
Zakres
Kroki
dataType: steps
filter parameter: steps
Typ rekordu: Interval

Zgodne urządzenia

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly

Wytyczne

Podczas integrowania śledzenia kroków z aplikacją postępuj zgodnie z tymi wytycznymi dotyczącymi projektowania i implementacji.

Obliczanie prędkości i tempa

Interfejs Google Health API używa standardowych formuł do obliczania prędkości i tempa:

  • Prędkość = distance / time(hour)
  • Tempo = time(seconds) / distance

Jednostkę odległości określa nagłówek Accept-Language podany w żądaniu.

Codzienne podsumowanie

Aby dokładnie agregować dzienną liczbę kroków podczas podróży, zmian stref czasowych lub czasu letniego, nie wykonuj obliczeń czasu trwania po stronie klienta. Zamiast tego wysyłaj zapytania do punktu końcowego dailyRollUp, który automatycznie uzupełnia luki w danych fizycznych za pomocą przesunięć UTC. Agregacja zwraca StepsRollupValue zawierający pole countSum, które reprezentuje łączną liczbę kroków wykonanych w żądanym dniu.

Rysowanie interfejsów (uzgadnianie)

Podczas tworzenia elementów interfejsu do wyświetlania danych o krokach użyj punktu końcowego reconcile. Jeśli kilka źródeł danych (np. smartwatch i telefon komórkowy) zarejestrowało kroki w tym samym czasie, punkt końcowy reconcile rozwiązuje konflikty i scala strumienie, aby zwrócić jeden uzgodniony strumień danych.

Śledzenie w ciągu dnia i histogramy

Aby wyświetlać szczegółowe informacje o aktywności użytkownika w ciągu dnia (np. wykresy):

  • Histogramy kroków godzinowych: wysyłaj zapytania do punktu końcowego rollUp, określając czas trwania (np. 3600s na 1 godzinę) za pomocą parametru windowSize.
  • Wszystkie rekordy kroków: użyj punktu końcowego list, aby pobrać najbardziej szczegółowe, surowe rekordy kroków.

Punkty końcowe rollUp, dailyRollUp i reconcile akceptują parametr dataSourceFamily, który umożliwia filtrowanie danych z określonych grup źródeł. Więcej informacji i przykłady użycia znajdziesz w sekcji Filtrowanie i agregowanie według rodziny źródeł danych w przewodniku po punktach końcowych.

Synchronizacja w czasie rzeczywistym za pomocą webhooków

Subskrybuj kolekcję typu danych steps, aby otrzymywać powiadomienia w czasie rzeczywistym o zaimportowaniu lub zsynchronizowaniu nowych danych o krokach. Zamiast sondować punkty końcowe REST, aktualizuj dynamicznie pulpity po stronie klienta w odpowiedzi na te powiadomienia webhooków. Więcej informacji o konfigurowaniu subskrypcji znajdziesz w sekcji Subskrypcje webhooków.

Obsługa prawdziwych zer

Interfejs Google Health API implementuje prawdziwe zera, aby rozwiązywać problemy z okresami braku aktywności. Jeśli użytkownik nosi urządzenie śledzące, ale nie chodzi w danym okresie, interfejs API zwraca rekord dla tego interwału, który zawiera normalne źródło danych i metadane sygnatury czasowej, ale pomija właściwość count.

Dzięki temu możesz odróżnić:

  • Okresy bezruchu na nadgarstku: użytkownik nosi urządzenie, ale nie chodzi. Spowoduje to zwrócenie rekordów bez właściwości count (interpretowanych jako zero kroków).
  • Okresy bez urządzenia na nadgarstku: użytkownik nie nosi urządzenia. Spowoduje to brak rekordu, co spowoduje duże luki w danych.

Więcej informacji znajdziesz w przewodniku Obecność danych i prawdziwe zera dla więcej szczegółów.