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:
Die Generierung synthetischer Daten unter Wear OS 4 und höher ist in den Lebenszyklus der Health Services API eingebunden. Das bedeutet, dass keine adb-Befehle zum Starten oder Beenden des Tests erforderlich sind. Stattdessen können Sie die Übung wie ein Nutzer in der App starten oder beenden.
Erweiterte Unterstützung für Trainingsereignisse: Sie können das Empfangen von Ereignissen zur automatischen Pause und Wiederaufnahme, Unfallereignissen, Schlaferkennung und Ereignissen zur Erkennung von Golfschlägen simulieren.
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:
- Erstellen oder öffnen Sie ein Android-virtuelles Gerät (AVD) und führen Sie Ihre App auf dem Emulator aus.
- Wählen Sie im Bereich „Emulator“ die Option Wear Health Services aus. 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 |
|
Automatische Wiederaufnahme erkannt |
|
Sturz erkannt |
|
Schlaf erkannt |
|
Ruhemodus-Stopp erkannt |
|
Golfschlag erkannt |
|
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.
- Aktivieren Sie die Entwickleroptionen.
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.
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- SourceType
- ArithmeticExpression
- ListConfiguration