Symulowanie danych z czujników przy użyciu usług medycznych

Używaj danych syntetycznych wygenerowanych przez usługi zdrowotne na Wear OS, aby testować aplikację tak, jakby trening naprawdę miał miejsce.

Jeśli testujesz na emulatorze z Wear OS 3 (poziom interfejsu API 30 lub nowszy), możesz używać danych syntetycznych wygenerowanych przez emulator. Aby dowiedzieć się więcej o różnicach między generowaniem danych syntetycznych w Wear OS 3 i nowszych wersjach, zapoznaj się z tym przewodnikiem.

Korzystanie z danych syntetycznych na Wear OS 4 i wyższych

Jeśli testujesz aplikację na emulatorze z Wear OS 4 (poziom interfejsu API 33) lub nowszym, możesz użyć danych syntetycznych wygenerowanych przez emulator. Dzięki temu możesz korzystać z kilku ulepszeń w generowaniu danych syntetycznych w porównaniu z wcześniejszymi wersjami Wear OS:

Korzystanie z panelu czujników usług zdrowotnych

Android Studio Koala Feature Drop (Canary) zawiera panel czujników z usługami zdrowotnymi na Wear OS. Panel może symulować urządzenie z określonymi możliwościami czujników lub bez nich. Jest to ważne podczas tworzenia aplikacji fitness na Wear OS.

Możesz też użyć tego panelu, aby zmienić wartości danych i obserwować, jak aplikacja się dostosowuje.

Aby otworzyć panel i z niego korzystać:

  1. Utwórz lub otwórz urządzenie wirtualne Androida (AVD)uruchom aplikację na emulatorze.
  2. W panelu emulatora wybierz Wear Health Services. Otwórz panel usług zdrowotnych Wear Otwiera się panel Usługi zdrowotne Wear, w którym wyświetlana jest lista czujników dostępnych na różnych urządzeniach z Androidem.

Po otwarciu panelu możesz:

  • Przełącz między opcjami Standardowe funkcjeWszystkie funkcje (domyślnie), aby wybrać zestaw funkcji, które mają być włączone podczas następnego ćwiczenia. Możesz włączyć lub wyłączyć poszczególne funkcje, zaznaczając pola wyboru. Kliknij Zastosuj, aby wysłać bieżącą listę funkcji do emulowanego urządzenia, a następnie wybierz Resetuj, aby przywrócić domyślne wartości włączenia i wyłączenia listy funkcji.
  • Po kliknięciu przycisku menu Wyzwalanie zdarzeń możesz wywoływać różne zdarzenia użytkownika. Tutaj możesz uruchomić automatyczne wstrzymywanie/wznawianie aktywności fitness, uruchomić zdarzenia związane ze snem użytkownika oraz uruchomić uderzenia golfa, które użytkownik wykonuje na polu golfowym lub na polu do minigolfa.
  • Zastępowanie wartości czujników po rozpoczęciu ćwiczenia w aplikacji zainstalowanej na emulatorze. Po wpisaniu nowych wartości dla różnych danych ćwiczenia wybierz Zastosuj, aby zsynchronizować te wartości z emulatorem. Przydaje się to do testowania, jak aplikacja radzi sobie z różnymi warunkami treningu i tendencjami fitnessowymi użytkowników.

Generowanie danych syntetycznych za pomocą emulatora

Aplikację możesz też uruchomić bez panelu czujników, a dane będą automatycznie generowane przez emulator.

Aby rozpocząć, wstrzymać i zatrzymać generowanie danych syntetycznych, użyj ustawień w aplikacji.

Pamiętaj też, że emulator generuje te same wartości danych dla każdego ćwiczenia.

Symulowanie zdarzeń

W emulatorze możesz symulować różne zdarzenia, np. AUTO_PAUSE_DETECTED. Aby wywołać te zdarzenia, możesz użyć tego polecenia:

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

Zdarzenia syntetyczne

Wydarzenie

Klucz

Wykryto automatyczne wstrzymanie

whs.AUTO_PAUSE_DETECTED

Wykryto automatyczne wznowienie

whs.AUTO_RESUME_DETECTED

Wykryto upadek

whs.FALL_OVER

Wykryto sen

whs.START_SLEEPING

Wykryto zatrzymanie drzemki

whs.STOP_SLEEPING

Wykryto uderzenie w golfa

whs.GOLF_SHOT

Aby wywołać zdarzenie automatycznego wstrzymania, możesz użyć tego polecenia:

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

W przypadku zdarzeń uderzenia w golfa należy podać dodatkowe parametry typu zamachu golfisty, które zostały opisane poniżej:

Typ uderzenia w golfie

Parametr

Typ uderzenia w putt

putt

Typ częściowego bujania

częściowe

Typ pełnego wahadła

pełna

Po określeniu zdarzenia uderzenia w golfa dodaj typ zamachu:

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

Na przykład to polecenie powoduje częściowy strzał w golfa:

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

Korzystanie z danych syntetycznych na Wear OS 3

Jeśli testujesz aplikację na emulatorze z Wear OS 3, możesz też użyć danych syntetycznych.

Włączanie generowania danych syntetycznych

Aby włączyć generowanie danych syntetycznych na Wear OS 3, wykonaj te czynności.

  1. Włącz opcje dla programistów.
  2. Aby włączyć tryb syntetyczny, uruchom to polecenie adb:

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

Po włączeniu generowania danych syntetycznych wydawaj polecenia opisane na tej stronie, aby kontrolować zachowanie „użytkownika syntetycznego”.

Wyłączanie generowania danych syntetycznych

Aby wrócić do korzystania z rzeczywistych czujników, uruchom to polecenie:

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

Ćwiczenia syntetyczne

Usługi zdrowotne obsługują te typy ćwiczeń:

  • Pieszo: whs.synthetic.user.START_WALKING
  • W toku: whs.synthetic.user.START_RUNNING
  • Wędrówki: whs.synthetic.user.START_HIKING
  • Pływanie: whs.synthetic.user.START_SWIMMING
  • Bieganie na bieżni: whs.synthetic.user.START_RUNNING_TREADMILL

Ćwiczenia generują realistyczne dane syntetyczne dla tych typów danych:

  • Tętno
  • Liczba kroków na minutę
  • lokalizacja GPS, korzystając z jednej domyślnej trasy;
  • Czas trwania aktywności
  • Wysokość i piętra

Dodatkowo można generować te stany:

  • stan snu – sen lub czuwanie;
  • Wykrywanie upadku

Rozpocznij

Aby rozpocząć symulowanie ćwiczenia, wyślij odpowiednią transmisję do 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

Każda aktywność ma wstępnie ustawione obsługiwane dane:

Aktywność Tętno Średnia szybkość Zmiana wysokości Włącz lokalizację
Spacer 120 uderzeń na minutę 1,4 m/s 20,0 m/min prawda
Uruchomiono 170 uderzeń na minutę 2,3 m/s 20,0 m/min prawda
Turystyka piesza 150 uderzeń na minutę 1,3 m/s 20,0 m/min prawda
Pływanie 150 uderzeń na minutę 1,6 m/s 0,0 m/min prawda
Bieganie na bieżni 160 uderzeń na minutę 2,3 m/s 20,0 m/min fałsz

Zatrzymaj

Aby zatrzymać aktywność syntetyczną, użyj tego polecenia:

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

Możliwość

Aby mieć większą kontrolę nad generowanymi danymi, uruchom niestandardową aktywność ćwiczenia za pomocą ciągu działania whs.synthetic.user.START_EXERCISE. Podaj dowolną kombinację tych flag:

  • --ei exercise_options_duration_secs <int>: czas trwania ćwiczenia w sekundach. Domyślnie: 0.
  • --ei exercise_options_heart_rate <int>: tętno w uderzeniach na minutę. Średnia: 70.
  • --ef exercise_options_average_speed <float>: średnia prędkość w metrach na sekundę. Ma też wpływ na kroki na minutę, czyli rytm. Domyślnie: 0.
  • --ez exercise_options_use_location <boolean>: czy podczas ćwiczenia mają być emitowane dane o lokalizacji, korzystając z trasy domyślnej. Domyślnie: false.
  • --ef exercise_options_max_elevation_rate <float>: maksymalna możliwa szybkość zmiany wysokości w metrach na minutę. Domyślnie: 0.

Na przykład możesz ustawić opcje ćwiczenia w ten sposób:

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

Możesz też zmienić dostępne typy danych, niezależnie od tego, czy rzeczywisty czy emulowany sprzęt obsługuje dany typ danych. Możesz na przykład włączyć lub wyłączyć bezwzględną wysokość, jak pokazano w tym fragmencie kodu:

# 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

Inne stany i zdarzenia

Stan uśpienia

Możesz też wywołać stany uśpienia dla użytkownika syntetycznego. Obsługiwane są 2 stany: uśpienia i budzenia.

Aby przejść do stanu uśpienia, uruchom to polecenie:

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

Aby przejść do stanu aktywnego, uruchom to polecenie:

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

Wykrywanie upadku

Aby symulować upadek, uruchom to polecenie:

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

Przesłanie zdarzenia o upadku może potrwać do minuty.