Schrittfunktionen mit der Google Health API entwickeln

Die Google Health API erfasst die Schritte und Aktivitätsdaten von Nutzern mit dem Intervall-Datentyp steps. Die Schrittzahl ist ein grundlegendes Maß für die tägliche körperliche Aktivität. Sie hilft Entwicklern, den Fitnessfortschritt zu verfolgen, den Energieverbrauch zu berechnen und für Nutzer sichtbare Zusammenfassungen der täglichen Aktivität zu erstellen.

Hier erfährst du, wie du Messwerte zur Schrittzahl in deiner Anwendung liest und strukturierst, um deinen Nutzern die bestmögliche Erfahrung zu bieten.

Unterstützte Datentypen

Die API unterstützt den folgenden Datentyp zum Erfassen der Schrittzahl:

Tabelle: Datentypen für Schritte in der Google Health API
Datentyp Verfügbare
-Vorgänge
Bereich
Schritte
dataType: steps
filter parameter: steps
Eintragstyp: Intervall
Speicherauflösung: 1 Minute

Kompatible Geräte

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

Richtlinien

Wenn du das Schritt-Tracking in deine App integrierst, beachte die folgenden Design- und Implementierungsrichtlinien.

Berechnung von Geschwindigkeit und Tempo

Die Google Health API verwendet Standardformeln, um Geschwindigkeit und Tempo zu berechnen:

  • Geschwindigkeit = distance / time(hour)
  • Tempo = time(seconds) / distance

Der in der Anfrage angegebene Header Accept-Language bestimmt die Entfernungseinheit.

Tägliche Übersicht

Wenn du die tägliche Schrittzahl bei Reisen, Zeitzonenänderungen oder Sommerzeit korrekt aggregieren möchtest, solltest du keine clientseitigen Berechnungen der Dauer durchführen. Fragen Sie stattdessen den Endpunkt dailyRollUp ab, der physische Datenlücken automatisch mithilfe der UTC-Abweichungen ausgleicht. Der Roll-up gibt ein StepsRollupValue-Objekt mit dem Feld countSum zurück, das die Gesamtzahl der Schritte für den angeforderten Tag enthält. Weitere Informationen finden Sie im Leitfaden zu aggregierten Daten unter Über Kalendertage hinweg aggregieren.

Benutzeroberflächen zeichnen (Abgleich)

Wenn du Elemente der Benutzeroberfläche zum Anzeigen von Schrittdaten erstellst, verwende den Endpunkt reconcile. Wenn mehrere Datenquellen (z. B. eine Smartwatch und ein Smartphone) gleichzeitig Schritte aufgezeichnet haben, löst der Endpunkt reconcile Konflikte und führt die Streams zusammen, um einen einzigen, abgeglichenen Datenstream zurückzugeben.

Informationen zum Umgang mit sich überschneidenden Intervallen aus Synchronisierungen verbundener Geräte und zur Veränderbarkeit von Zeitstempeln findest du im Leitfaden zur Datenverwaltung.

Intraday-Tracking und Histogramme

So rufen Sie detaillierte Nutzeraktivitäten im Laufe des Tages auf (z. B. Diagramme und Grafiken):

  • Histogramme mit stündlichen oder minütlichen Schritten: Fragen Sie den Endpunkt rollUp ab und geben Sie die Dauer (z. B. 60s für 1 Minute oder 3600s für 1 Stunde) mit dem Parameter windowSize an. Da Schrittdaten in Intervallen von 1 Minute (60s) aufgezeichnet werden, legen Sie für windowSize mindestens 60s fest. Bei Anfragen mit Fenstergrößen von weniger als einer Minute (z. B. 10s oder 30s) werden die Summen für einzelne Minuten nicht aufgeteilt. Die Anzahl für die gesamte Minute wird in den ersten übereinstimmenden Unter-Bucket eingefügt. Weitere Informationen finden Sie unter Roll-up-Fenster und Speicherauflösung.
  • Alle Schrittaufzeichnungen:Verwende den Endpunkt list, um die detailliertesten Rohschrittaufzeichnungen abzurufen.

Die Endpunkte rollUp, dailyRollUp und reconcile akzeptieren den Parameter dataSourceFamily, mit dem Sie Daten aus bestimmten Quellgruppen filtern können. Weitere Informationen und Anwendungsbeispiele finden Sie im Abschnitt Nach Datenquellenfamilie filtern des Leitfadens zum Filtern von Daten.

Echtzeitsynchronisierung über Webhooks

Abonniere die Datentypsammlung steps, um in Echtzeit benachrichtigt zu werden, wenn neue Schrittdaten importiert oder synchronisiert werden. Anstatt REST-Endpunkte abzufragen, können Sie clientseitige Dashboards dynamisch als Reaktion auf diese Webhook-Benachrichtigungen aktualisieren. Weitere Informationen zum Einrichten von Abos finden Sie unter Webhook-Abos.