Mit synthetischen Daten, die von Health Services auf Wear OS generiert werden, können Sie Ihre App so testen, als würde ein Training tatsächlich 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 Ihre App auf einem Emulator mit Wear OS 4 (API-Level 33) oder höher testen, können Sie synthetische Daten verwenden, die vom Emulator generiert werden. Im Vergleich zu früheren Wear OS-Versionen gibt es einige Verbesserungen bei der Generierung synthetischer Daten:
Die Generierung synthetischer Daten unter Wear OS 4 und höher ist in den Lebenszyklus der Health Services API integriert. Das bedeutet, dass keine adb-Befehle zum Starten oder Beenden des Trainings erforderlich sind. Stattdessen können Sie das Training in der App wie ein Nutzer starten oder beenden.
Erweiterte Unterstützung für Trainingsereignisse: Du kannst den Empfang von Ereignissen für automatische Pausen und Fortsetzungen, Sturzerkennung, Schlaferkennung und Erkennung von Golfschlägen simulieren.
Sensorbereich der Health Services verwenden
Android Studio Koala Feature Drop (Canary) enthält einen Sensorbereich für Health Services auf Wear OS. Mit dem Steuerfeld kann simuliert werden, ob ein Gerät bestimmte Sensorfunktionen hat oder nicht. Das ist wichtig, wenn du Fitness-Apps für Wear OS entwickelst.
Sie können das Feld auch verwenden, um die Werte von Messwerten zu ändern und zu beobachten, wie sich Ihre App anpasst.
So öffnen und verwenden Sie das Steuerfeld:
- Erstellen oder öffnen Sie ein Android Virtual Device (AVD) und führen Sie Ihre App auf dem Emulator aus.
- Wählen Sie im Emulator-Steuerfeld Wear Health Services aus.
Das Wear Health Services-Panel wird geöffnet und zeigt eine Liste der Sensoren, die auf verschiedenen Android-Geräten verfügbar sind.
Nachdem das Feld geöffnet wurde, haben Sie folgende Möglichkeiten:
- Wechsle zwischen Standardfunktionen und Alle Funktionen (Standard), um die Funktionen auszuwählen, die während des nächsten Trainings aktiviert werden sollen. Sie können einzelne Funktionen aktivieren oder deaktivieren, indem Sie die entsprechenden Kästchen ankreuzen. Wählen Sie Anwenden 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 zurückzusetzen.
- Lösen Sie verschiedene Nutzerereignisse aus, nachdem Sie die Drop-down-Schaltfläche Ereignisse auslösen ausgewählt haben. Hier kannst du automatische Pausen/Fortsetzungen von Fitnessaktivitäten auslösen, Schlafereignisse auslösen und Golfschläge auslösen, die der Nutzer auf einem Golfplatz oder Minigolfplatz ausführt.
- Sie können 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. Das ist nützlich, um zu testen, wie deine App mit unterschiedlichen Trainingsbedingungen und Fitnessgewohnheiten der Nutzer umgeht.
Synthetische Daten mit dem Emulator generieren
Sie können Ihre App auch ohne das Sensorbedienfeld ausführen. In diesem Fall werden die Daten automatisch vom Emulator generiert.
Mit den In-App-Steuerelementen können Sie die Generierung synthetischer Daten starten, pausieren und beenden.
Außerdem werden im Emulator für jede Übung dieselben Datenwerte generiert.
Ereignisse simulieren
Im Emulator können Sie verschiedene Ereignisse 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 |
|
Schlafunterbrechung erkannt |
|
Golfschlag erkannt |
|
Mit dem folgenden Befehl können Sie beispielsweise ein Ereignis zum automatischen Pausieren auslö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 Golfschlag-Schwungtyp angeben, die in der folgenden Tabelle aufgeführt sind:
Golfschlag-Schwungtyp |
Parameter |
---|---|
Swing-Putt-Typ |
Putt |
Teiltyp für Schwenkung |
Teilweise |
Swing-Volltyp |
voll |
Fügen Sie den Schwungtyp 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
Mit dem folgenden Befehl wird beispielsweise ein teilweiser Golfschuss 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 auch synthetische Daten verwenden.
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
Führen Sie den folgenden Befehl aus, um wieder echte Sensoren zu verwenden:
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
- Ausführung:
whs.synthetic.user.START_RUNNING
- Wandern:
whs.synthetic.user.START_HIKING
- Schwimmen:
whs.synthetic.user.START_SWIMMING
- Laufen auf einem 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 mit einer einzelnen Standardroute
- Dauer der Aktivität
- Höhe und Etagen
Außerdem können die folgenden Status generiert werden:
- Schlafstatus: schlafend oder wach
- Sturzerkennung
Starten
Wenn Sie mit der Simulation eines Trainings beginnen möchten, senden Sie den entsprechenden Broadcast 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 | Durchschnittliche Geschwindigkeit | Höhenunterschied | Standort verwenden |
---|---|---|---|---|
Gehen | 120 bpm | 1,4 m/s | 20,0 m/min | true |
Wird ausgeführt | 170 bpm | 2,3 m/s | 20,0 m/min | true |
Wandern | 150 SPM | 1,3 m/s | 20,0 m/min | true |
Schwimmen | 150 SPM | 1,6 m/s | 0,0 m/min | true |
Laufen auf dem Laufband | 160 bpm | 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 des Trainings in Sekunden. Standard: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. Dies wirkt sich auch auf die Schritte pro Minute oder die Schrittfrequenz aus. Standard:0
.--ez exercise_options_use_location <boolean>
: Gibt an, ob während des Trainings Standortdaten anhand einer Standardroute ausgegeben werden sollen. Standard:false
.--ef exercise_options_max_elevation_rate <float>
: Die maximal mögliche Änderungsrate der Höhe in Metern pro Minute. Standard:0
.
So legen Sie beispielsweise die Optionen für Übungen 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. 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 Schlafstatus für den synthetischen Nutzer auslösen. Es werden zwei Status unterstützt: „Schlafend“ und „Wach“.
Führen Sie den folgenden Befehl aus, um in den Ruhezustand 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 aktiven Zustand zu wechseln:
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 Gesundheitsdienste das Sturzereignis übermitteln.
Empfehlungen für dich
- Hinweis: Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- SourceType
- ArithmeticExpression
- ListConfiguration