Имитация данных датчиков с помощью Health Services

Используйте синтетические данные, сгенерированные сервисами Health Services на Wear OS, чтобы протестировать ваше приложение так, как если бы в реальности проводилось какое-либо упражнение.

Если вы проводите тестирование на эмуляторе с операционной системой Wear OS 3 (уровень API 30) или выше, вы можете использовать синтетические данные, сгенерированные эмулятором. Подробнее о различиях в генерации синтетических данных для Wear OS 3 и выше см. в следующем руководстве.

Используйте синтетические данные на Wear OS 4 и более поздних версиях.

Если вы тестируете приложение на эмуляторе с Wear OS 4 (уровень API 33) или выше, вы можете использовать синтетические данные, сгенерированные эмулятором. Это обеспечивает ряд улучшений по сравнению с тем, как генерировались синтетические данные в более ранних версиях Wear OS:

Используйте панель датчиков медицинских услуг.

В Android Studio Koala Feature Drop (Canary) добавлена ​​панель датчиков Health Services для Wear OS. Эта панель позволяет имитировать наличие или отсутствие у устройства определенных возможностей датчиков, что важно для тестирования при разработке фитнес-приложений для Wear OS.

Вы также можете использовать эту панель для изменения значений метрик и наблюдения за тем, как ваше приложение адаптируется к этим изменениям.

Чтобы открыть и использовать панель, выполните следующие действия:

  1. Создайте или откройте виртуальное устройство Android (AVD) и запустите свое приложение на эмуляторе .
  2. В панели эмулятора выберите Wear Health Services . Панельная дискуссия Open Wear Health Services Открывается панель Wear Health Services , отображающая список датчиков, доступных на различных устройствах под управлением Android.

После открытия панели вы можете выполнить следующие действия:

  • Переключайтесь между «Стандартные возможности» и «Все возможности (по умолчанию)», чтобы выбрать набор возможностей, которые будут включены во время следующего упражнения. Вы можете включать или отключать отдельные возможности, устанавливая флажки. Выберите «Применить» , чтобы отправить текущий список возможностей на эмулируемое устройство, и выберите «Сбросить», чтобы восстановить список возможностей до значений по умолчанию (включено/выключено).
  • После выбора пункта «Запускать события» в раскрывающемся списке, вы можете запускать различные пользовательские события. Здесь вы можете запускать автоматическую паузу/возобновление фитнес-тренировок, события, связанные со сном пользователя, а также события, связанные с ударами пользователя на поле для гольфа или мини-гольфа.
  • Переопределяйте значения датчиков после начала тренировки в приложении, установленном на эмуляторе. После ввода новых значений для различных показателей тренировки выберите «Применить» , чтобы синхронизировать эти значения с эмулятором. Это полезно для тестирования того, как ваше приложение обрабатывает различные условия тренировки и предпочтения пользователей в отношении физической активности.

Генерируйте синтетические данные с помощью эмулятора.

Вы также можете запустить приложение без панели датчиков, и данные будут автоматически генерироваться эмулятором.

Используйте встроенные элементы управления, чтобы запустить, приостановить и завершить генерацию синтетических данных.

Также следует отметить, что эмулятор генерирует одни и те же значения данных для каждого упражнения.

Имитация событий

В эмуляторе можно имитировать различные события, такие как AUTO_PAUSE_DETECTED . Для запуска этих событий можно использовать следующую команду:

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

Синтетические события

Событие

Ключ

Обнаружена автоматическая пауза

whs.AUTO_PAUSE_DETECTED

Обнаружено автоматическое возобновление работы

whs.AUTO_RESUME_DETECTED

Обнаружено падение

whs.FALL_OVER

Обнаружен сон

whs.START_SLEEPING

Обнаружена остановка сна

whs.STOP_SLEEPING

Обнаружен удар в гольфе

whs.GOLF_SHOT

Например, для запуска события автоматической паузы можно использовать следующую команду:

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

Для событий, связанных с ударами в гольфе, необходимо указать дополнительные параметры типа свинга , которые описаны в следующей таблице:

Таблица 1: События и их ключевые моменты

Тип удара в гольфе

Параметр

Тип удара с вращением

патт

Частичный тип качания

частичный

Поворотный тип

полный

Добавьте тип удара в гольфе после указания события удара в гольфе:

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

Например, следующая команда запускает выполнение частичного удара в гольфе:

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

Используйте синтетические данные на Wear OS 3

Если вы тестируете приложение на эмуляторе с операционной системой Wear OS 3, вы также можете использовать синтетические данные для его проверки.

Включить генерацию синтетических данных

Выполните следующие шаги, чтобы включить генерацию синтетических данных в Wear OS 3.

  1. Включите параметры разработчика .
  2. Для включения синтетического режима выполните следующую команду adb :

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

После включения генерации синтетических данных используйте команды, описанные на этой странице, для управления поведением «синтетического пользователя».

Отключить генерацию синтетических данных

Чтобы вернуться к использованию реальных датчиков, выполните следующую команду:

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

Синтетические упражнения

Служба здравоохранения поддерживает следующие виды физических упражнений:

  • Ходьба: whs.synthetic.user.START_WALKING
  • Выполняется: whs.synthetic.user.START_RUNNING
  • Пеший туризм: whs.synthetic.user.START_HIKING
  • Плавание: whs.synthetic.user.START_SWIMMING
  • Бег на беговой дорожке: whs.synthetic.user.START_RUNNING_TREADMILL

В ходе упражнений генерируются реалистичные синтетические данные следующих типов:

  • Частота сердечных сокращений
  • Количество шагов в минуту
  • Определение местоположения по GPS с использованием единого маршрута по умолчанию.
  • Продолжительность мероприятия
  • Фасад и этажи

Кроме того, могут быть сгенерированы следующие состояния:

  • Состояние сна — сон или бодрствование
  • обнаружение падения

Начинать

Для начала имитации упражнения отправьте соответствующее широковещательное сообщение на адрес 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

Для каждого вида деятельности предусмотрены предустановленные параметры поддерживаемых метрик:

Активность Частота сердечных сокращений Средняя скорость Изменение высоты Использовать местоположение
Ходьба 120 ударов в минуту 1,4 м/сек 20,0 м/мин истинный
Бег 170 ударов в минуту 2,3 м/сек 20,0 м/мин истинный
Пеший туризм 150 ударов в минуту 1,3 м/сек 20,0 м/мин истинный
Плавание 150 ударов в минуту 1,6 м/сек 0,0 м/мин истинный
Бег на беговой дорожке 160 ударов в минуту 2,3 м/сек 20,0 м/мин ЛОЖЬ

Останавливаться

Чтобы остановить синтетическую активность, используйте следующую команду:

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

Обычай

Для более точного управления генерируемыми метриками запустите пользовательское упражнение, используя строку действия whs.synthetic.user.START_EXERCISE . Укажите любую комбинацию следующих флагов:

  • --ei exercise_options_duration_secs <int> : длительность упражнения в секундах. По умолчанию: 0 .
  • --ei exercise_options_heart_rate <int> : частота сердечных сокращений в ударах в минуту. Среднее значение: 70 .
  • --ef exercise_options_average_speed <float> : средняя скорость в метрах в секунду. Также влияет на количество шагов в минуту или частоту шагов . По умолчанию: 0 .
  • --ez exercise_options_use_location <boolean> : следует ли передавать данные о местоположении во время упражнения, используя маршрут по умолчанию. По умолчанию: false .
  • --ef exercise_options_max_elevation_rate <float> : максимально возможная скорость изменения высоты в метрах в минуту. По умолчанию: 0 .

Например, параметры тренировки можно настроить следующим образом:

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

Вы также можете изменить доступные типы данных, независимо от того, поддерживает ли реальное или эмулируемое оборудование тот или иной тип данных. Например, вы можете включить или отключить абсолютную высоту, как показано в следующем фрагменте кода:

# 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

Другие штаты и события

В этом разделе описывается, как моделировать другие состояния и события, такие как сон и падения.

состояние сна

Также можно активировать состояния сна для синтетического пользователя. Поддерживаются два состояния: сон и бодрствование.

Чтобы перейти в спящий режим, выполните следующую команду:

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

Чтобы перейти в бодрствующее состояние, выполните следующую команду:

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

обнаружение падения

Для имитации падения выполните следующую команду:

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

На проведение мероприятия, связанного с осенним осенним событием, медицинским службам может потребоваться до минуты.

{% verbatim %} {% endverbatim %} {% verbatim %} {% endverbatim %}