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

Używaj danych syntetycznych generowanych przez usługi zdrowotne na Wear OS, aby testować aplikację tak, jakby ćwiczenie było wykonywane w rzeczywistości.

Jeśli testujesz na emulatorze z Wear OS 3 (API na poziomie 30) lub nowszym, możesz używać danych syntetycznych generowanych przez emulator. Więcej informacji o różnicach między generowaniem danych syntetycznych na potrzeby Wear OS 3 i nowszych wersji znajdziesz w tym przewodniku.

Korzystanie z danych syntetycznych na zegarkach z Wear OS 4 i nowszymi

Jeśli testujesz na emulatorze z Wear OS 4 (API na poziomie 33) lub nowszym, możesz używać danych syntetycznych generowanych przez emulator do testowania aplikacji. Wprowadza to szereg ulepszeń w stosunku do sposobu generowania danych syntetycznych w starszych wersjach Wear OS:

  • Generowanie danych syntetycznych na urządzeniach z Wear OS 4 i nowszym jest zintegrowane z cyklem życia interfejsu Health Services API. Oznacza to, że nie trzeba używać poleceń adb, aby rozpocząć lub zatrzymać ćwiczenie. Zamiast tego możesz rozpocząć lub zakończyć ćwiczenie w aplikacji tak jak użytkownik.

  • Rozszerzona obsługa zdarzeń związanych z ćwiczeniami: możesz symulować otrzymywanie zdarzeń automatycznego wstrzymania i wznawiania, zdarzeń upadku, wykrywania snuwykrywania uderzeń w golfa.

Korzystanie z panelu czujników usług zdrowotnych

Pakiet nowych funkcji Android Studio Koala (Canary) zawiera panel czujników Usług zdrowotnych na Wear OS. Panelu można używać do symulowania urządzenia z określonymi możliwościami czujnika lub bez nich, co jest ważne podczas testowania aplikacji fitness na Wear OS.

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

Aby otworzyć panel i z niego korzystać, wykonaj te czynności:

  1. Utwórz lub otwórz wirtualne urządzenie z Androidem (AVD)uruchom aplikację w emulatorze.
  2. W panelu emulatora kliknij Wear Health Services (Usługi zdrowotne Wear). Otwórz panel Usługi dotyczące zdrowia w Wear OS Otworzy się panel Usługi zdrowotne Wear z listą czujników dostępnych na różnych urządzeniach z Androidem.

Po otwarciu panelu możesz:

  • Przełączaj między opcjami Standardowe funkcjeWszystkie funkcje (domyślnie), aby wybrać zestaw funkcji, które będą włączone podczas następnego ćwiczenia. Możesz włączyć lub wyłączyć poszczególne funkcje, zaznaczając odpowiednie pola wyboru. Kliknij Zastosuj, aby wysłać bieżącą listę funkcji do emulowanego urządzenia, a następnie kliknij Resetuj, aby przywrócić domyślne wartości włączenia i wyłączenia funkcji.
  • Po kliknięciu przycisku menu Wywołaj zdarzenia wywołaj różne zdarzenia użytkownika. Możesz automatycznie wstrzymywać i wznawiać aktywności fitness, wywoływać zdarzenia związane ze snemwywoływać uderzenia piłki golfowej, które użytkownik wykonuje na polu golfowym lub polu do minigolfa.
  • Zastąp wartości czujników po rozpoczęciu ćwiczenia w aplikacji zainstalowanej na emulatorze. Po wpisaniu nowych wartości różnych danych dotyczących ćwiczeń wybierz Zastosuj, aby zsynchronizować te wartości z emulatorem. Przydaje się to do testowania, jak aplikacja radzi sobie w różnych warunkach ćwiczeń i jak reaguje na tendencje użytkowników do aktywności fizycznej.

Generowanie danych syntetycznych za pomocą emulatora

Możesz też uruchomić aplikację bez panelu czujników i sprawić, że dane będą generowane automatycznie przez emulator.

Za pomocą elementów sterujących w aplikacji możesz rozpocząć, wstrzymać i zakończyć generowanie danych syntetycznych.

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 wznawianie

whs.AUTO_RESUME_DETECTED

Wykryto upadek

whs.FALL_OVER

Wykryto sen

whs.START_SLEEPING

Wykryto zatrzymanie z powodu snu

whs.STOP_SLEEPING

Wykryto uderzenie piłki golfowej

whs.GOLF_SHOT

Aby na przykład 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ń związanych z uderzeniami w golfie należy określić dodatkowe parametry rodzaju uderzenia w golfie, które są wymienione w tej tabeli:

Tabela 1. Zdarzenia i ich klucze

Rodzaj uderzenia w golfa

Parametr

Rodzaj swingu

putt

Typ części swingu

częściowy

Swing Full Type

pełna

Po określeniu zdarzenia uderzenia piłki golfowej 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 wywołuje częściowy strzał golfowy:

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 zegarku z Wear OS 3, wykonaj te czynności:

  1. Włącz opcje programisty.
  2. Aby włączyć tryb syntetyczny, wydaj 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 „syntetycznego użytkownika”.

Wyłączanie generowania danych syntetycznych

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

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

Ćwiczenia syntetyczne

Usługi związane ze zdrowiem obsługują te typy ćwiczeń:

  • Pieszo: whs.synthetic.user.START_WALKING
  • Bieganie: whs.synthetic.user.START_RUNNING
  • Turystyka piesza: 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 z użyciem jednej domyślnej trasy
  • Czas trwania aktywności
  • Wysokość i piętra

Dodatkowo mogą wystąpić te stany:

  • Stan snu – śpi lub nie śpi
  • Wykrywanie upadku

Rozpocznij

Aby rozpocząć symulację ćwiczenia, wyślij odpowiednią transmisję do urządzenia 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 gotowe ustawienia obsługiwanych danych:

Aktywność Tętno Średnia prędkość Zmiana wysokości Włącz lokalizację
Chodzenie 120 uderzeń na minutę 1,4 m/s 20,0 m/min true
Uruchomiono 170 uderz./min 2,3 m/s 20,0 m/min true
Piesza wędrówka 150 uderzeń na minutę 1,3 m/s 20,0 m/min true
Pływanie 150 uderzeń na minutę 1,6 m/s 0,0 m/min true
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, rozpocznij niestandardową aktywność związaną z ćwiczeniami, używając 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 kadencję. Domyślnie: 0.
  • --ez exercise_options_use_location <boolean>: czy podczas ćwiczenia mają być emitowane dane o lokalizacji przy użyciu domyślnej trasy. 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 ustaw opcje ćwiczeń 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 lub emulowany sprzęt obsługuje dany typ danych. Możesz na przykład włączyć lub wyłączyć wysokość bezwzględną, 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 snu

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

Aby przejść w stan uśpienia, uruchom to polecenie:

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

Aby przejść w stan aktywności, uruchom to polecenie:

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

Wykrywanie upadku

Aby przeprowadzić symulację upadku, uruchom to polecenie:

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

Dostarczenie zdarzenia upadku przez usługi zdrowotne może potrwać do minuty.