Имитация данных датчиков с помощью 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 on Wear OS. Панель можно использовать для имитации устройства, имеющего или не имеющего определенные возможности сенсора, что важно протестировать при создании фитнес-приложений на Wear OS.

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

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

  1. Создайте или откройте виртуальное устройство Android (AVD) и запустите свое приложение на эмуляторе .
  2. На панели эмулятора выберите Wear Health Services . Открыть панель 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

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

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

Параметр

Тип свинга-патта

удар

Частичный тип поворота

частичный

Качели полного типа

полный

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

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

Службам здравоохранения может потребоваться до минуты, чтобы доставить осеннее событие.

{% дословно %} {% дословно %} {% дословно %} {% дословно %}