Sensordaten mit Gesundheitsdiensten simulieren

Mit synthetischen Daten aus Health Services unter Wear OS deine App testen tatsächlich eine Übung stattfand.

Wenn Sie Tests auf einem Emulator mit Wear OS 3 (API-Level 30) oder höher ausführen, können Sie synthetische Daten verwenden, die vom Emulator generiert wurden. Sehen Sie sich Folgendes an: Leitfaden zu den Unterschieden zwischen der Generierung synthetischer Daten für Wear OS 3 oder höher.

Synthetische Daten unter Wear OS 4 und höher verwenden

Beim Testen auf einem Emulator mit Wear OS 4 (API-Level 33) oder höher die vom Emulator erzeugten synthetischen Daten zum Testen Ihrer App verwenden können. Dieses bietet eine Reihe von Verbesserungen bei der Generierung synthetischer Daten auf älteren Wear OS-Versionen:

Sensorfeld für Gesundheitsdienste verwenden

Android Studio Koala Feature Drop (Canary) enthält ein Gesundheitsdienste im Wear OS-Sensorbereich. Das Steuerfeld kann verwendet werden, um eine Geräte, die spezielle Sensorfunktionen haben oder nicht, was wichtig ist. beim Erstellen von Fitness-Apps unter Wear OS testen.

Dort können Sie auch die Werte ändern und beobachten, und die App passt sich an.

So öffnen und verwenden Sie das Steuerfeld:

  1. Ein virtuelles Android-Gerät (AVD) erstellen oder öffnen und führe deine App im Emulator aus.
  2. Wählen Sie im Emulator-Steuerfeld Wear Health Services aus. Bereich mit Wear Health Services öffnen Der Bereich Wear Health Services wird geöffnet und Sie sehen eine Liste der Sensoren, die auf verschiedenen Android-Mobilgeräte

Nach dem Öffnen des Steuerfelds haben Sie folgende Möglichkeiten:

  • Wechseln Sie zwischen den Standardfunktionen. Alle Funktionen (Standardeinstellung) oder Benutzerdefiniert. Wählen Sie Übernehmen aus, um die Liste der Funktionen auf dem emulierten Gerät und wählen Sie Zurücksetzen Die Liste der Funktionen auf die standardmäßigen Ein-/Aus-Werte zurücksetzen.
  • Verschiedene Nutzerereignisse auslösen, nachdem Sie die Triggerereignisse ausgewählt haben Dropdown-Schaltfläche. Von hier aus können Sie automatisches Pausieren/Fortsetzen der Fitnessdaten auslösen. Aktivitäten, Schlafereignisse auslösen durch den Nutzer und Golfschläge auslösen die der Nutzer auf einem Golfplatz oder Minigolfplatz betritt.
  • Sensorwerte überschreiben, nachdem du mit einem Training in einer installierten App begonnen hast im Emulator. Nachdem du neue Werte für verschiedene Trainingsmesswerte eingegeben hast, Wählen Sie Anwenden aus, um diese Werte mit dem Emulator zu synchronisieren. Dies ist nützlich für um zu testen, wie deine App mit verschiedenen Trainingsbedingungen und den Fitness Tendenzen.

Synthetische Daten mit dem Emulator generieren

Du kannst deine App auch ohne das Sensorfeld ausführen und automatisch vom Emulator generiert.

Über die Einstellungen in der App können Sie die Generierung synthetischer Daten starten, pausieren und beenden.

Beachten Sie außerdem, dass der Emulator für jede Übung die gleichen 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 Fortsetzung erkannt

whs.AUTO_RESUME_DETECTED

Sturz erkannt

whs.FALL_OVER

Schlaf erkannt

whs.START_SLEEPING

Schlaf-Stopp erkannt

whs.STOP_SLEEPING

Golfschlag erkannt

whs.GOLF_SHOT

Sie können beispielsweise den folgenden Befehl verwenden, um ein automatisches Pause-Ereignis auszulösen:

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

Für Golfschlagereignisse sollten Sie zusätzliche Parameter für den Typ des Golfschlags, im Folgenden:

Art des Golfschlags

Parameter

Putttyp für den Schwung

Putt

Teiltyp des Schaukels

teilweise Maximierung

Schaukel (Kompletttyp)

voll

Fügen Sie den Schlagtyp des Golfschlags hinzu, nachdem Sie das Golfschlag-Ereignis angegeben haben:

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

Der folgende Befehl löst beispielsweise einen teilweisen Golfschlag aus:

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

Beim Testen auf einem Emulator mit Wear OS 3 können Sie auch synthetische Daten zum Testen Ihrer App.

Generierung synthetischer Daten aktivieren

Führe 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, führen Sie die hier beschriebenen Befehle aus. um das Verhalten des „synthetischen Nutzers“ zu steuern.

Generierung synthetischer Daten deaktivieren

Mit dem folgenden Befehl können Sie wieder auf echte Sensoren zurückwechseln:

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

Synthetische Übungen

Health Services unterstützt die folgenden Trainingstypen:

  • Zu Fuß: whs.synthetic.user.START_WALKING
  • Läuft: whs.synthetic.user.START_RUNNING
  • Wandern: whs.synthetic.user.START_HIKING
  • Schwimmen: whs.synthetic.user.START_SWIMMING
  • Laufband (Laufband): whs.synthetic.user.START_RUNNING_TREADMILL

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

  • Herzfrequenz
  • Schrittzahl pro Minute
  • GPS-Standort mit einer Standardroute
  • Dauer der Aktivität
  • Höhe und Etagen

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

  • Schlafstatus: schlafen oder wach
  • Unfallerkennung

Starten

Um mit der Simulation einer Übung zu beginnen, sende 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öhenunterschied Standort verwenden
Gehen 120 SPM 1,4 m/s 20 m/Min. wahr
Laufen 170 SPM 2,3 m/s 20 m/Min. wahr
Wandern 150 SPM 1,3 m/s 20 m/Min. wahr
Schwimmen 150 SPM 1,6 m/s 0,0 m/Min. wahr
Laufen auf Laufband 160 SPM 2,3 m/s 20 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 steuern möchten, welche Messwerte generiert werden, starten Sie einen benutzerdefinierten 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. Standardeinstellung: 0.
  • --ei exercise_options_heart_rate <int>: Herzfrequenz in Schlägen pro Minute. Durchschnitt: 70.
  • --ef exercise_options_average_speed <float>: Durchschnittsgeschwindigkeit in Metern pro Sekunde. Wirkt sich auch auf die Schritte pro Minute oder Kadenz aus. Standardeinstellung: 0.
  • --ez exercise_options_use_location <boolean>: ob während des Trainings Standortdaten über eine Standardroute gesendet werden sollen. Standardeinstellung: false.
  • --ef exercise_options_max_elevation_rate <float>: maximal mögliche Höhenänderungsrate in Metern pro Minute. Standardeinstellung: 0.

Lege zum Beispiel Trainingsoptionen so 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, nicht die tatsächliche oder emulierte Hardware einen bestimmten Datentyp unterstützt. Sie können beispielsweise die absolute Höhe, Dies wird 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

Schlafstatus

Sie können auch Ruhemodus-Status für den synthetischen Nutzer auslösen. Zwei Zustände sind unterstützt: schlafen und wach.

Führen Sie den folgenden Befehl aus, um in den Ruhemodus zu wechseln:

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

Führen Sie den folgenden Befehl aus, um in den Wachzustand zu wechseln:

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

Unfallerkennung

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 Herbstereignis bereitstellen.