App-Kompatibilität auf Wear OS-Geräten verbessern

Die Wear Health Services API (WHS) ist eine obligatorische Komponente für alle Geräte mit Wear OS 3 und höher, da sie eine einheitliche Integrationsoberfläche für Entwickler im Bereich Gesundheit und Fitness bietet. Entwickeln Sie Ihre App so, dass sie sich problemlos an viele Geräte und ihre unterschiedlichen Funktionen anpasst, um die Kompatibilität zwischen Geräten aufrechtzuerhalten und Probleme mit der Nutzererfahrung zu vermeiden. Deklarieren Sie dazu Abhängigkeiten nur für die Clients, die Ihre Anwendung verwendet. Geben Sie Ihrer Anwendung außerdem die Flexibilität, optionale erweiterte Messwerte je nach Verfügbarkeit anzuzeigen oder zu entfernen.

Verschiedene Sensoren generieren Daten mit unterschiedlichen Frequenzen, die je nach zugrunde liegender Hardware und Sensorplattform je nach Gerät variieren. Beispielsweise kann ein Gerät die Herzfrequenz bei einem Zeitstempel und an einer anderen Stelle zurückgeben. Erstellen Sie Anwendungen, die unabhängige Datenstreams mit verschiedenen Zeitstempeln oder mit sich überschneidenden Zeitstempeln empfangen können.

In diesem Leitfaden werden die erwarteten Verhaltensweisen und Datentypen beschrieben, die von verschiedenen Clients in Wear Health Services unterstützt werden.

Trainingsclient

In den folgenden Abschnitten werden das erwartete Verhalten und die erwarteten Datentypen von ExerciseClient beschrieben.

Erwartetes Verhalten

Einige Trainingstypen für ExerciseClient hängen von der Verfügbarkeit bestimmter Datentypen ab. So sind beispielsweise Rollstuhlübungen nur möglich, wenn Rollstuhlschübe unterstützt werden. Sie können diese Optionen je nach ihrer Verfügbarkeit auf einem bestimmten Gerät aktivieren oder deaktivieren.

Die meisten Trainingsdatentypen werden im Sekundentakt erfasst und bereitgestellt. Es gibt jedoch einige Ausnahmen:

  • In einigen Situationen werden einige Trainingsdatentypen mehr als einmal pro Sekunde aktualisiert. Wenn der Nutzer beispielsweise ausgeführt wird, wird die Schrittzahl mehr als einmal pro Sekunde aktualisiert.
  • Bei einigen Datentypen wird eine Aktualisierung nur gesendet, wenn sich der aktuelle Wert vom vorherigen Wert unterscheidet.

Die Datenübermittlung kann entweder Streaming- oder Batch-Daten bereitgestellt werden. Die Daten werden gestreamt, während der Anwendungsprozessor eingeschaltet ist. Dies ist in der Regel dann der Fall, wenn die Anzeige aktiviert und interaktiv ist. Sobald sich die Anzeige ausschaltet oder in den Inaktivmodus (aktiviert, aber nicht interaktiv) wechselt, werden die Daten zusammengefasst, um Strom zu sparen. Die in Batches zusammengefassten Daten werden an die Anwendung übergeben, wenn sich der Anwendungsprozessor wieder einschaltet, entweder weil die Uhr den Inaktivmodus beendet hat, oder wenn die Puffer für die Stapelverarbeitung voll sind, je nach Gerät. Die Abtastrate bleibt gleich, während sich das Gerät im Umgebungsmodus befindet, sodass ein übermittelter Batch trotzdem Hochfrequenzdatenpunkte hat.

Datentypen werden ausschließlich aus Daten abgeleitet, die von Sensoren der Uhr generiert werden. Zum Beispiel stammen die Standortdaten vollständig von der Smartwatch und nicht vom Smartphone.

Datentypen

Mit der ExerciseClient API können Sie verschiedene Workouts starten, pausieren, fortsetzen und beenden. WHS definiert für jede Übung eine Reihe von Datentypen, die Ihnen für diesen Übungstyp zur Verfügung gestellt werden. Das spart Energie und vereinfacht die Anwendungslogik, da Sensoren, die für eine bestimmte Übung nicht benötigt werden, nicht eingeschaltet sind. Zu Beginn eines Laufs werden beispielsweise nur Standortdaten für einen Lauf im Freien bereitgestellt und aufgezeichnet. Zu Beginn eines Fahrradtrainings werden keine Schritte angegeben oder aufgezeichnet. In den folgenden Abschnitten werden die Datentypen beschrieben, die in ExerciseClient unterstützt werden.

Datentypen für garantiertes Training

Die folgenden Trainingsdatentypen sind auf allen Geräten verfügbar.

  • Beispieldatentypen haben einen entsprechenden _STATS-Datentyp, der Mindest-, Höchst- und Durchschnittswerte aus der Übung zurückgibt. PACE-Statistiken können beispielsweise mit dem Datentyp PACE_STATS abgerufen werden.
  • Intervall-Datentypen haben einen entsprechenden _TOTAL-Datentyp, der den kumulativen Wert aus dem Training zurückgibt. Zum Beispiel können Distance-Statistiken mit dem Datentyp DISTANCE_TOTAL abgerufen werden.
Messwert Erwartete Daten Hinweise zum erwarteten Verhalten
HEART_RATE_SPM Schläge pro Minute [DataType: Double] Alle Geräte erfassen die Herzfrequenz einmal pro Sekunde während eines Trainings. Einige Geräte melden pro Sekunde einen BPM-Wert. Einige Geräte melden die BPM nur dann, wenn er sich seit dem vorherigen Wert geändert hat. Du solltest nicht auf allen Geräten einen BPM-Wert pro Sekunde erhalten.
STANDORT Breiten- und Längengrad [DataType: Double] Die Standortdaten basieren nur auf dem GPS der Smartwatch. Erwarte nicht, dass Standortdaten von einem Anbieter für kombinierte Standortbestimmung oder von anderen Android-Diensten stammen. Jeder Datenpunkt umfasst auch einen Genauigkeitswert (auch als horizontalen Positionsfehler bezeichnet) und die Verfügbarkeit.
SCHRITTE [Datentyp: Long] Die Schrittzahl ist eine laufende Summe über die Dauer des Trainings, ohne die Zeit, in der das Training pausiert ist.
STRECKE Meter [Data type: Double] Berechnet anhand des GPS-basierten Standorts, falls verfügbar, und aus Schritten, falls verfügbar. Die Gesamtsumme bezieht sich auf die Gesamtzahl während der Dauer des Trainings, ohne die Zeit, in der das Training pausiert wurde.
GESCHWINDIGKEIT [Meter / Sekunde] [Datentyp: Doppelt] Gibt Mindest-, Höchst- und Durchschnittswerte zurück. Diese gelten für die Dauer des Trainings, ohne die Zeit, in der das Training pausiert wurde.
Tempo [Sekunden / Meter] [Datentyp: Double] Der Standardwert ist 0, wenn die Geschwindigkeit 0 ist. Die Durchschnittswerte beziehen sich auf die Dauer der Übung, ohne die Zeit, in der die Übung pausiert wurde.
ELEVATION_GAIN Meter. [Datentyp: Double] Positive Höhenunterschiede. Die Summe wird über die Dauer des Trainings gemeldet, ohne die Zeit, in der das Training pausiert wurde.
TOTAL_KALORIES kCal [Datentyp: Double] Aktiv verbrannte Kalorien zum Grundumsatz addiert. Bei den hier ausgegebenen Kalorien werden Größe, Gewicht, Alter und Geschlecht des Nutzers entsprechend den Systemeinstellungen berücksichtigt. Bei den Kalorien werden keine in deiner App erfassten Nutzerprofildaten berücksichtigt. Der gemeldete Gesamtwert bezieht sich auf die Dauer des Trainings, nicht die Zeit, in der das Training pausiert ist.

Optionale Trainingsdatentypen

Die folgende Liste mit Datentypen ist nur auf bestimmten Geräten verfügbar. Eine vollständige Liste der Datentypen finden Sie in der Jetpack-Referenz. Wenn ein DataType nicht in der vorherigen Liste „erforderlich/garantiert“ enthalten ist, ist er optional.

Nachfolgend finden Sie Beispiele für optionale Datentypen. Hier einige Beispiele:

Messwert Erwartete Daten Hinweise zum erwarteten Verhalten
ABSOLUTE_ELEVATION [Datentyp: Double]
ELEVATION_LOSS Meter [Data type: Double] Negative Höhenunterschiede. Der Wert ist positiv. Für einen Höhenverlust von 1 m wird beispielsweise 1 zurückgegeben, nicht -1.
SCHRITTE_PER_MINUTE [Datentyp: Long]
WHEELCHAIR_PUSHES [Datentyp: Long] Anzahl der Rollstuhlschübe für rollstuhlgerechte Übungen.
REP_COUNT [Datentyp: Long]
SWIM_STROKE_COUNT [Datentyp: Long]
SWIM_LAP_COUNT [Datentyp: Long]

Datentypen pro Training

Für jeden Übungstyp werden unterschiedliche Datentypen zurückgegeben. Die zurückgegebenen Datentypen entsprechen den Anforderungen der Übung. Beispielsweise gibt der Übungstyp TRAINING nicht den Datentyp SCHRITTE zurück. Verwenden Sie zur Laufzeit die Methode Capabilities, um festzustellen, welche Datentypen auf dem Gerät des Nutzers unterstützt werden.

Alle Trainingstypen geben mindestens Daten zu Herzfrequenz und Kalorien zurück. Andere Übungen unterstützen möglicherweise zusätzliche Datentypen, je nach den Anforderungen für die Übung.

Hier einige Beispiele:

  • Übungen wie Meditation oder Pilates unterstützen nur die Herzfrequenz und Kalorien.
  • Trainings wie Basketball oder Badminton unterstützen Herzfrequenz, Kalorien, Strecke und Schritte.
  • Trainings wie Gehen oder Laufen unterstützen Herzfrequenz, Kalorien, Strecke, Schritte, Geschwindigkeit und Tempo.
  • Schwimmen unterstützt Herzfrequenz, Kalorien, Strecke und Schwimmrunden

Passives Monitoring-Client

Die folgenden Datentypen sind für alle Geräte mit Wear OS erforderlich, um Apps zu unterstützen, die Gesundheitsdaten wie Herzfrequenz und Schrittzahl passiv überwachen. Jeder dieser Datentypen darf ausschließlich aus Daten abgeleitet werden, die von Sensoren auf der Uhr generiert werden.

Erwartetes Verhalten

Um Energie zu sparen, werden die Sensormesswerte, die mit passivem Monitoring ermittelt wurden, auf der MCU gespeichert und an Gesundheitsdienste gesendet. Diese Batch-Ergebnisse werden je nach Systemverhalten in verschiedenen Intervallen zurückgegeben. Beispiele dafür sind die Rückgabe von Batches, wenn die Sensorzwischenspeicher voll sind oder der Nutzer mit dem Display interagiert.

Gehen Sie nicht von vordefinierten oder vorhersehbaren Batch-Intervallen für Datentypen aus.

Passive Monitoring-Datentypen

Messwert Erwartete Daten Notizen
HEART_RATE_SPM Schläge pro Minute [Data type: Double] Die Geräte können Herzfrequenzmessungen in verschiedenen Intervallen zurückgeben. Einige Geräte nehmen möglicherweise pro Sekunde ein Messwert auf. Andere Geräte nehmen möglicherweise alle zehn Minuten eine Messung auf. Diese Intervalle werden Apps nicht zur Verfügung gestellt. Anwendungen sollten sich reibungslos an verschiedene Abtastintervalle anpassen.
SCHRITTE_TAG/SCHRITTE [Datentyp: Long] Tägliche Schritte sind die Gesamtzahl der seit dem letzten Zurücksetzen unternommenen Schritte, die um Mitternacht durch den WHS ausgelöst wird. Dazu gehören alle Schritte, die gegangen sind, während ein aktives Training pausiert ist. „Schritte“ stellt ein detailliertes Delta seit der letzten Prüfung dar.
STRECKE_DAILY/STRECKE Meter [Datentyp: Double] Berechnet aus Beschleunigungsmesser/Schritten. Führe die Berechnungen nicht während der GPS-Nutzung aus, damit Nutzer, die Standortdienste deaktiviert haben, trotzdem genaue Schrittzahlen erhalten können.
GESCHWINDIGKEIT [Meter / Sekunde] [Datentyp: Doppelt]
KALORIES_DAILY kCal [Datentyp: Double] Kalorien für den Tag, einschließlich aktiver Kalorien und des Grundumsatzes. Die hier ausgegebene Kalorienzahl berücksichtigt die Größe, das Gewicht, das Alter und das Geschlecht des Nutzers, wie in den Systemeinstellungen angegeben. Kalorien werden nicht anhand von Nutzerprofildaten angepasst, die in deiner App erfasst wurden.
RUNNING_STEPS (optional) [Datentyp: Long] Delta der Schritte sowohl während einer Übung als auch anderweitig. Beide gleichzeitig erfassen.
SCHRITTE_DER_SCHRITTE (optional) [Datentyp: Long]
ELEVATION_GAIN Meter [Datentyp: Double] Beinhaltet nur die positiven Höhenunterschiede
ELEVATION_LOSS Meter [Datentyp: Double] Beinhaltet nur die negativen Höhenunterschiede
ETAGEN_TAG [Datentyp: Double] Können als „teilweise“ Etagen dargestellt werden

Passive Überwachung – tägliche Ziele

Messwert Erwartete Daten Notizen
SCHRITTE_TÄGLICH [Datentyp: Long] Tägliche Schritte, einschließlich aller Schritte, die während eines aktiven Trainings gegangen sind, ist die Gesamtzahl der seit dem letzten Zurücksetzen zurückgelegten Schritte. Der WHS wird um Mitternacht zurückgesetzt.
ETAGEN_TAG [Datentyp: Double] Kann als „teilweise“ Treppenstufen dargestellt werden.
KALORIES_DAILY kCal [Datentyp: Double] Kalorien für den Tag, einschließlich aktiver Kalorien und des Grundumsatzes.
STRECKE_DAILY Meter [Datentyp: Double] Berechnet aus Beschleunigungsmesser oder Schrittzahl Berechne dies nicht mit dem GPS, damit Nutzer, die Standortdienste deaktiviert haben, trotzdem genaue Schrittzahlen erhalten können.
DAILY_ELEVATION_GAIN Meter [Datentyp: Double] Beinhaltet nur die positiven Höhenunterschiede

MeasureClient

Verwenden Sie MeasureClient, um die Herzfrequenz zu einem bestimmten Zeitpunkt zu messen.

Erwartetes Verhalten

MeasureClient und PassiveClient sind sich in einigen Punkten ähnlich. Beide bieten nicht-Batch-Gesundheitsstatistiken, die nichts mit einem Training zu tun haben. Sie können beide zum Messen der Herzfrequenz verwenden. Der Hauptunterschied besteht darin, dass MeasureClient die Verfügbarkeit von Herzfrequenzdaten enthält, PassiveClient jedoch keine Verfügbarkeitsinformationen.

Datentypen

Messwert Erwartete Daten Notizen
HEART_RATE_SPM Schläge pro Minute [Data type: Double] Enthält auch die Verfügbarkeit

Unterstützte Funktionen

Zusätzlich zu den Datentypen für Training und passives Monitoring unterstützen Geräte zusätzliche Funktionen zum Auslösen von Ereignissen wie das Starten eines Trainings und die Messung des Zustands wie Schlaf oder Wachzustand. Einige dieser Funktionen sind auf allen Geräten verfügbar, andere nur auf bestimmten Geräten.

Ereignistrigger

Alle Geräte unterstützen die folgenden gängigen Trigger:

  • Tägliche Ziele für Strecke und Schritte
  • Trainingsziele für Schritte, Strecke und Dauer.

Andere Geräte unterstützen möglicherweise erweiterte Ereignistrigger. Hier einige Beispiele:

  • Runden zählen beim Schwimmen
  • Trainingsziele für verbrannte Kalorien
  • Trainingsziele für sofortige Geschwindigkeit

Bundesstaaten

Alle Geräte unterstützen die Funktion „Basic-State“. Die Statusfunktion bezieht sich darauf, ob Nutzende derzeit aktiv sind oder nicht

Andere Geräte können zusätzliche Statusfunktionen bieten. Einige zusätzliche Statusfunktionen umfassen die Erkennung, ob eine Aktivität automatisch angehalten oder automatisch fortgesetzt wurde oder ob der Nutzer wach oder schläft.

Gesundheitswarnungen im passiven Monitoring

Einige Geräte unterstützen Gesundheitswarnungen. Diese Funktionen werden nicht auf allen Geräten unterstützt. Einige Gesundheitsbenachrichtigungen umfassen das Erkennen von Auffälligkeiten bei der Herzfrequenz oder das Erkennen von Stürzen.