Verwende synthetische Daten, die von Health Services unter Wear OS generiert wurden, um deine App so zu testen, als würde tatsächlich eine Übung stattfinden.
Wenn Sie Tests auf einem Emulator mit Wear OS 4 (API 33) oder Wear OS 3 (API 30) durchführen, können Sie vom Emulator generierte synthetische Daten verwenden. Im folgenden Leitfaden findest du weitere Informationen zu den Unterschieden zwischen der Generierung synthetischer Daten für Wear OS 3 und Wear OS 4.
Synthetische Daten unter Wear OS 4 verwenden
Wenn du einen Test mit einem Emulator mit Wear OS 4 (API 33) durchführst, kannst du deine App mit synthetischen Daten testen, die vom Emulator generiert werden. Das bringt eine Reihe von Verbesserungen hinsichtlich der Generierung synthetischer Daten unter Wear OS 3 mit sich:
Die Generierung synthetischer Daten unter Wear OS 4 ist in den Lebenszyklus der Health Services API eingebunden. Das bedeutet, dass keine ADB-Befehle erforderlich sind, um die Übung zu starten oder zu beenden. Stattdessen können Sie die Übung in der App starten oder beenden, so wie es der Nutzer tun würde.
Erweiterte Unterstützung für Trainingsereignisse: Du kannst den Empfang von Ereignissen zum automatischen Pausieren und Fortsetzen, von Fällen, der Schlaferkennung und der Erkennung von Golfschlägen simulieren.
Sensorfeld für Gesundheitsdienste verwenden
Android Studio Koala Feature Drop (Canary) enthält ein Sensorfeld für Wear OS-Dienste. Das Panel kann verwendet werden, um ein Gerät zu simulieren, das bestimmte Sensorfunktionen hat oder nicht. Dies ist wichtig, wenn du Fitness-Apps unter Wear OS erstellst.
In diesem Bereich können Sie auch die Werte von Messwerten ändern und beobachten, wie sich Ihre Anwendung anpasst.
So öffnen und verwenden Sie das Steuerfeld:
- Erstelle oder öffne ein Android Virtual Device (AVD) und führe deine App im Emulator aus.
- Wählen Sie im Emulator-Steuerfeld Wear Health Services aus. Der Bereich Wear Health Services wird geöffnet und zeigt eine Liste der Sensoren an, die auf verschiedenen Android-Geräten verfügbar sind.
Nach dem Öffnen des Steuerfelds haben Sie folgende Möglichkeiten:
- Wechseln Sie zwischen Standardfunktionen, Alle Funktionen (Standardeinstellung) oder Benutzerdefiniert. Wählen Sie Anwenden aus, um die aktuelle Liste der Funktionen an das emulierte Gerät zu senden. Wählen Sie dann Zurücksetzen aus, um die Liste der Funktionen auf die standardmäßigen Ein-/Aus-Werte wiederherzustellen.
- Verschiedene Nutzerereignisse auslösen, nachdem Sie die Drop-down-Schaltfläche Triggerereignisse ausgewählt haben. Hier können Sie Automatisches Pausieren/Fortsetzen von Fitnessaktivitäten auslösen, Schlafereignisse durch den Nutzer auslösen und Golfschläge auslösen, die der Nutzer auf einem Golfplatz oder Minigolf unternimmt.
- Überschreiben Sie die Sensorwerte, nachdem Sie mit einer Übung in einer auf dem Emulator installierten App begonnen haben. Nachdem du neue Werte für verschiedene Trainingsmesswerte eingegeben hast, wähle Anwenden aus, um diese Werte mit dem Emulator zu synchronisieren. Dies ist nützlich, um zu testen, wie deine App mit verschiedenen Trainingsbedingungen und Fitnesstrends der Nutzer umgeht.
Synthetische Daten mit dem Emulator generieren
Sie können Ihre App auch ohne das Sensorfeld ausführen und Daten automatisch vom Emulator generieren lassen.
Ü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 |
|
Automatische Fortsetzung erkannt |
|
Sturz erkannt |
|
Schlaf erkannt |
|
Schlaf-Stopp erkannt |
|
Golfschlag erkannt |
|
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 angeben, der im Folgenden beschrieben wird:
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
Wenn du deine App in einem Emulator mit Wear OS 3 testest, kannst du sie auch mit synthetischen Daten testen.
Generierung synthetischer Daten aktivieren
Führe 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, führen Sie die auf dieser Seite 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
Start
Sende die entsprechende Übertragung an com.google.android.wearable.healthservices
, um mit der Simulation einer Übung zu beginnen:
# 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äten | Herzfrequenz | Durchschnittliche Geschwindigkeit | Höhenunterschied | Standort verwenden |
---|---|---|---|---|
Gehen | 120 SPM | 1,4 m/s | 20 m/Min. | true |
Laufen | 170 SPM | 2,3 m/s | 20 m/Min. | true |
Wandern | 150 SPM | 1,3 m/s | 20 m/Min. | true |
Schwimmen | 150 SPM | 1,6 m/s | 0,0 m/Min. | true |
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
Für eine genauere Kontrolle darüber, welche Messwerte generiert werden, starte 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 des Trainings in Sekunden. Standardeinstellung:0
.--ei exercise_options_heart_rate <int>
: Herzfrequenz in Schlägen pro Minute. Durchschnitt:70
.--ef exercise_options_average_speed <float>
: durchschnittliche Geschwindigkeit in Metern pro Sekunde. Wirkt sich auch auf die Schritte pro Minute oder Kadenz aus. Standardeinstellung:0
.--ez exercise_options_use_location <boolean>
: Gibt an, ob während des Trainings Standortdaten über eine Standardroute gesendet werden sollen. Standardeinstellung:false
.--ef exercise_options_max_elevation_rate <float>
: die 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, unabhängig davon, ob die echte oder emulierte Hardware einen bestimmten Datentyp unterstützt oder nicht. Sie können 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
Schlafstatus
Sie können auch Ruhemodus-Status für den synthetischen Nutzer auslösen. Es werden zwei Zustände unterstützt: schlafend 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.
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Quelltyp
- Arithmetischer Ausdruck
- ListConfiguration (Listenkonfiguration)