Sensordaten mit Gesundheitsdiensten simulieren

Verwenden Sie synthetische Daten, die von den Gesundheitsdiensten in Wear OS generiert werden, um Ihre App so zu testen, als würde ein Training wirklich stattfinden.

Wenn Sie auf einem Emulator mit Wear OS 3 (API-Level 30) oder höher testen, können Sie synthetische Daten verwenden, die vom Emulator generiert werden. Im folgenden Leitfaden finden Sie weitere Informationen zu den Unterschieden zwischen der Generierung synthetischer Daten für Wear OS 3 und höher.

Synthetische Daten unter Wear OS 4 und höher verwenden

Wenn Sie mit einem Emulator testen, auf dem Wear OS 4 (API-Level 33) oder höher ausgeführt wird, können Sie synthetische Daten verwenden, die vom Emulator generiert werden, um Ihre App zu testen. Dies bietet eine Reihe von Verbesserungen gegenüber der Generierung synthetischer Daten in früheren Versionen von Wear OS:

Sensorbereich für Gesundheitsdienste verwenden

Der Android Studio Koala Feature Drop (Canary) enthält einen Bereich für Gesundheitsdienste auf dem Wear OS-Sensorpanel. Mit dem Steuerfeld können Sie ein Gerät simulieren, das bestimmte Sensorfunktionen hat oder nicht. Das ist beim Erstellen von Fitness-Apps auf Wear OS wichtig.

Sie können die Werte der Messwerte auch im Steuerfeld ändern und beobachten, wie sich Ihre App anpasst.

So öffnen und verwenden Sie den Bereich:

  1. Erstellen oder öffnen Sie ein Android-virtuelles Gerät (AVD) und führen Sie Ihre App auf dem Emulator aus.
  2. Wählen Sie im Bereich „Emulator“ die Option Wear Health Services aus. Wear Health Services-Steuerfeld öffnen Das Steuerfeld Wear Health Services wird geöffnet. Es enthält eine Liste der Sensoren, die auf verschiedenen Android-Geräten verfügbar sind.

Nachdem das Steuerfeld geöffnet wurde, haben Sie folgende Möglichkeiten:

  • Wählen Sie zwischen Standardfunktionen und Alle Funktionen (Standard) aus, um die Funktionen auszuwählen, die bei der nächsten Übung aktiviert werden sollen. Sie können einzelne Funktionen aktivieren oder deaktivieren, indem Sie die entsprechenden Kästchen anklicken. Wählen Sie Übernehmen aus, um die aktuelle Liste der Funktionen an das emulierte Gerät zu senden, und Zurücksetzen, um die Liste der Funktionen auf die Standardwerte für Ein-/Aus-Status zurückzusetzen.
  • Sie können verschiedene Nutzerereignisse auslösen, nachdem Sie die Drop-down-Schaltfläche Ereignisse auslösen ausgewählt haben. Hier können Sie Fitnessaktivitäten automatisch pausieren/fortsetzen, Ruhemodus-Ereignisse des Nutzers auslösen und Golfschläge des Nutzers auf einem Golf- oder Minigolfplatz auslösen.
  • Sensorwerte überschreiben, nachdem Sie ein Training in einer App gestartet haben, die auf dem Emulator installiert ist Nachdem Sie neue Werte für verschiedene Trainingsmesswerte eingegeben haben, wählen Sie Übernehmen aus, um diese Werte mit dem Emulator zu synchronisieren. So können Sie testen, wie Ihre App mit verschiedenen Trainingsbedingungen und den Fitnesstrends der Nutzer umgeht.

Mit dem Emulator synthetische Daten generieren

Sie können Ihre App auch ohne das Steuerfeld für Sensoren ausführen und die Daten automatisch vom Emulator generieren lassen.

Mit den In-App-Einstellungen können Sie die Generierung synthetischer Daten starten, pausieren und beenden.

Beachten Sie auch, dass der Emulator für jede Übung dieselben Datenwerte generiert.

Ereignisse simulieren

Sie können verschiedene Ereignisse im Emulator simulieren, z. B. AUTO_PAUSE_DETECTED. Mit dem folgenden Befehl können diese Ereignisse ausgelöst werden:

adb shell am broadcast -a "whs.event-key" com.google.android.wearable.healthservices

Synthetische Ereignisse

Veranstaltung

Schlüssel

Automatische Pause erkannt

whs.AUTO_PAUSE_DETECTED

Automatische Wiederaufnahme erkannt

whs.AUTO_RESUME_DETECTED

Sturz erkannt

whs.FALL_OVER

Schlaf erkannt

whs.START_SLEEPING

Ruhemodus-Stopp erkannt

whs.STOP_SLEEPING

Golfschlag erkannt

whs.GOLF_SHOT

Mit dem folgenden Befehl können Sie beispielsweise ein automatisches Pausierungsereignis auslösen:

​​adb shell am broadcast -a "whs.AUTO_PAUSE_DETECTED" com.google.android.wearable.healthservices

Für Golfschlag-Ereignisse sollten Sie zusätzliche Parameter für den Golfschlag-Schwungtyp angeben. Diese werden unten beschrieben:

Golfschlag – Schwungtyp

Parameter

Art des Putts

Putt

Teiltyp der Schaukel

teilweise

Vollständiger Schwenktyp

voll

Füge den Schwungtyp des Golfschlags hinzu, nachdem du das Golfschlagereignis angegeben hast:

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type \
  "golf-swing-type-parameter" com.google.android.wearable.healthservices

Mit dem folgenden Befehl wird beispielsweise ein halber Golfschlag ausgelöst:

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type "partial" \
  com.google.android.wearable.healthservices

Synthetische Daten unter Wear OS 3 verwenden

Wenn Sie auf einem Emulator mit Wear OS 3 testen, können Sie Ihre App auch mit synthetischen Daten testen.

Generierung synthetischer Daten aktivieren

Führen Sie die folgenden Schritte aus, um die Generierung synthetischer Daten unter Wear OS 3 zu aktivieren.

  1. Aktivieren Sie die Entwickleroptionen.
  2. Führen Sie den folgenden adb-Befehl aus, um den synthetischen Modus zu aktivieren:

    adb shell am broadcast \
    -a "whs.USE_SYNTHETIC_PROVIDERS" \
    com.google.android.wearable.healthservices
    

Sobald die Generierung synthetischer Daten aktiviert ist, können Sie mit den auf dieser Seite beschriebenen Befehlen das Verhalten des „synthetischen Nutzers“ steuern.

Generierung synthetischer Daten deaktivieren

Wenn Sie wieder zu echten Sensoren wechseln möchten, führen Sie den folgenden Befehl aus:

adb shell am broadcast \
-a "whs.USE_SENSOR_PROVIDERS" \
com.google.android.wearable.healthservices

Synthetische Übungen

Die Gesundheitsdienste unterstützen die folgenden Trainingstypen:

  • Zu Fuß:whs.synthetic.user.START_WALKING
  • Laufen:whs.synthetic.user.START_RUNNING
  • Wandern:whs.synthetic.user.START_HIKING
  • Schwimmen:whs.synthetic.user.START_SWIMMING
  • Laufen auf dem Laufband:whs.synthetic.user.START_RUNNING_TREADMILL

Bei den Übungen werden realistische synthetische Daten für die folgenden Datentypen generiert:

  • Herzfrequenz
  • Schrittzahl pro Minute
  • GPS-Standort, eine einzige Standardroute verwendend
  • Dauer der Aktivität
  • Höhe und Stockwerke

Außerdem können die folgenden Status generiert werden:

  • Schlafstatus: Schlafen oder Wachen
  • Sturzerkennung

Starten

Wenn Sie eine Übung simulieren möchten, senden Sie die entsprechende Übertragung an com.google.android.wearable.healthservices:

# start the "walking" synthetic exercise
$ adb shell am broadcast \
-a "whs.synthetic.user.START_WALKING" \
com.google.android.wearable.healthservices

Für jede Aktivität gibt es Voreinstellungen für die unterstützten Messwerte:

Aktivität Herzfrequenz Durchschnittsgeschwindigkeit Höhenänderung Standort verwenden
Gehen 120 SPM 1,4 m/s 20,0 m/min wahr
Laufen 170 SPM 2,3 m/s 20,0 m/min wahr
Wandern 150 SPM 1,3 m/s 20,0 m/min wahr
Schwimmen 150 SPM 1,6 m/s 0,0 m/min wahr
Laufen auf dem Laufband 160 SPM 2,3 m/s 20,0 m/min false

Aufnahme beenden

Verwenden Sie den folgenden Befehl, um die synthetische Aktivität zu beenden:

adb shell am broadcast \
-a "whs.synthetic.user.STOP_EXERCISE" \
com.google.android.wearable.healthservices

Benutzerdefiniert

Wenn Sie genauer festlegen möchten, welche Messwerte generiert werden, starten Sie eine benutzerdefinierte Trainingsaktivität mit dem Aktionsstring whs.synthetic.user.START_EXERCISE. Geben Sie eine beliebige Kombination der folgenden Flags an:

  • --ei exercise_options_duration_secs <int>: Dauer der Übung in Sekunden. Standard: 0.
  • --ei exercise_options_heart_rate <int>: heart rate in beats per minute. Durchschnitt: 70.
  • --ef exercise_options_average_speed <float>: Durchschnittsgeschwindigkeit in Metern pro Sekunde. Wirkt sich auch auf die Schritte pro Minute oder die Schrittfrequenz aus. Standard: 0.
  • --ez exercise_options_use_location <boolean>: ob während des Trainings Standortdaten mithilfe eines Standard-Pfades gesendet werden sollen. Standard: false.
  • --ef exercise_options_max_elevation_rate <float>: Maximale mögliche Steigungsrate in Metern pro Minute. Standard: 0.

So legen Sie beispielsweise Übungsoptionen fest:

adb shell am broadcast \
-a "whs.synthetic.user.START_EXERCISE" \
--ei exercise_options_heart_rate 90 \
--ef exercise_options_average_speed 1.2 \
--ez exercise_options_use_location true \
com.google.android.wearable.healthservices

Sie können auch die verfügbaren Datentypen ändern und festlegen, ob die reale oder emulierte Hardware einen bestimmten Datentyp unterstützt. So können Sie beispielsweise die absolute Höhe aktivieren oder deaktivieren, wie im folgenden Snippet gezeigt:

# enable synthetic mode and enable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation true \
com.google.android.wearable.healthservices

# enable synthetic mode and disable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation false \
com.google.android.wearable.healthservices

Andere Status und Ereignisse

Ruhemodus

Sie können auch Ruhezustände für den synthetischen Nutzer auslösen. Es werden zwei Status unterstützt: „Inaktiv“ und „Aktiv“.

Führen Sie diesen Befehl aus, um den Ruhemodus zu aktivieren:

adb shell am broadcast \
-a "whs.synthetic.user.START_SLEEPING" \
com.google.android.wearable.healthservices

Führen Sie diesen Befehl aus, um den aktiven Zustand zu aktivieren:

adb shell am broadcast \
-a "whs.synthetic.user.STOP_SLEEPING" \
com.google.android.wearable.healthservices

Sturzerkennung

Führen Sie den folgenden Befehl aus, um einen Sturz zu simulieren:

adb shell am broadcast \
-a "whs.synthetic.user.FALL_OVER" \
com.google.android.wearable.healthservices

Es kann bis zu einer Minute dauern, bis die Gesundheitsdienste das Unfallereignis senden.