Simula los datos del sensor con los Servicios de salud

Usa datos sintéticos generados por los Servicios de salud en Wear OS para probar tu app como si un ejercicio estaban ocurriendo.

Si estás realizando pruebas en un emulador que ejecuta Wear OS 3 (nivel de API 30) o una versión posterior, puedes usar datos sintéticos generados por el emulador. Consulta lo siguiente para obtener más información sobre las diferencias entre la generación de datos sintéticos para Wear OS 3 y versiones posteriores

Cómo usar datos sintéticos en Wear OS 4 y versiones posteriores

Si estás realizando pruebas en un emulador con Wear OS 4 (nivel de API 33) o una versión posterior, pueden usar datos sintéticos que genera el emulador para probar tu app. Esta presenta una serie de mejoras sobre cómo se generan los datos sintéticos en versiones anteriores de Wear OS:

  • La generación de datos sintéticos en Wear OS 4 y versiones posteriores está integrada en el Ciclo de vida de la API de Health Services. Esto significa que no se necesita adb comandos para iniciar o detener el ejercicio. En cambio, puedes iniciar o detener la de ejercicios en la app como lo haría un usuario.

  • Compatibilidad ampliada para eventos de ejercicio: Puedes simular la recepción de pausas automáticas y reanudar eventos, eventos de otoño, detección de sueño, y detección de tiros de golf.

Usa el panel del sensor de los Servicios de salud

La Actualización de funciones de Koala de Android Studio (Canary) incluye un Servicios de salud en el panel de sensores de Wear OS El panel se puede usar para simular una que el dispositivo tenga o no capacidades de sensor específicas, lo cual es importante para probar cuando se compilen apps de fitness en Wear OS.

También puedes usar el panel para cambiar los valores de las métricas y observar cómo la app se ajusta.

Para abrir y usar el panel, haz lo siguiente:

  1. Cómo crear o abrir un dispositivo virtual de Android (AVD) y ejecuta tu app en el emulador.
  2. En el panel del emulador, selecciona Servicios de salud de Wear. Abrir el panel de Servicios de salud de Wear El panel Wear Health Services se abre una lista de sensores que están disponibles en diferentes Dispositivos con Android.

Después de que se abra el panel, puedes hacer lo siguiente:

  • Alterna entre las funciones estándar. Todas las funciones (predeterminada) o Personalizada. Selecciona Aplicar para enviar la lista actual de capacidades para el dispositivo emulado y selecciona Reset para restablecer la lista de capacidades a sus valores predeterminados de activación y desactivación.
  • Activa diferentes eventos de usuario después de seleccionar Eventos de activación botón desplegable. Desde aquí, puedes activar la pausa o la reanudación automática del entrenamiento. Activar eventos de sueño por parte del usuario y Activar tiros de golf que el usuario hace en un campo de golf o de minigolf.
  • Anula los valores del sensor después de comenzar un ejercicio en una app que está instalada en el emulador. Después de ingresar valores nuevos para diferentes métricas de ejercicio, selecciona Apply para sincronizar estos valores con el emulador. Esto es útil para probar la manera en que tu app controla diferentes condiciones de ejercicio y ejercicio tendencias.

Cómo generar datos sintéticos con el emulador

También puedes ejecutar tu app sin el panel de sensores y que los datos se generada automáticamente por el emulador.

Usa los controles de la app para iniciar, detener y finalizar la generación de datos sintéticos.

Además, ten en cuenta que el emulador genera los mismos valores de datos para cada ejercicio.

Simula eventos

Puedes simular varios eventos en el emulador, como AUTO_PAUSE_DETECTED. Puedes usar el siguiente comando para activar esos eventos:

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

Eventos sintéticos

Evento

Clave

Se detectó una pausa automática

whs.AUTO_PAUSE_DETECTED

Se detectó la reanudación automática

whs.AUTO_RESUME_DETECTED

Se detectó una caída

whs.FALL_OVER

Sueño detectado

whs.START_SLEEPING

Se detectó una suspensión

whs.STOP_SLEEPING

Se detectó un golpe de golf

whs.GOLF_SHOT

Por ejemplo, puedes usar el siguiente comando para activar un evento de pausa automática:

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

En el caso de los eventos de tiro de golf, debes especificar parámetros adicionales para el tipo de swing de tiro de golf. que se indican a continuación:

Tipo de columpio de tiro de golf

Parámetro

Tipo de golpe corto

putt

Tipo parcial de oscilación

parcial

Columpio completo

completo

Agrega el tipo de swing de golf después de especificar el evento de tiro de golf:

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

Por ejemplo, el siguiente comando activa un lanzamiento de golf parcial:

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

Cómo usar datos sintéticos en Wear OS 3

Si estás realizando pruebas en un emulador con Wear OS 3, también puedes usar para probar tu app.

Habilitar la generación de datos sintéticos

Completa los siguientes pasos para habilitar la generación de datos sintéticos en Wear OS 3.

  1. Habilita las opciones para desarrolladores.
  2. Ejecuta el siguiente comando de adb para habilitar el modo sintético:

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

Una vez habilitada la generación de datos sintéticos, emite los comandos que se describen en esta para controlar el comportamiento del "usuario sintético".

Inhabilitar la generación de datos sintéticos

Para volver a usar sensores reales, ejecuta el siguiente comando:

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

Ejercicios sintéticos

Los Servicios de salud admiten los siguientes tipos de ejercicio:

  • Caminar: whs.synthetic.user.START_WALKING
  • Correr: whs.synthetic.user.START_RUNNING
  • Hacer senderismo: whs.synthetic.user.START_HIKING
  • Nadar: whs.synthetic.user.START_SWIMMING
  • Correr en una cinta: whs.synthetic.user.START_RUNNING_TREADMILL

Los ejercicios generan datos sintéticos realistas para los siguientes tipos de datos:

  • Frecuencia cardíaca
  • Recuento de pasos por minuto
  • Ubicación GPS (con una única ruta predeterminada)
  • Duración de la actividad
  • Elevación y pisos

Además, se pueden generar los siguientes estados:

  • Estado de sueño (dormido o despierto)
  • Detección de caídas

Inicio

Para comenzar a simular un ejercicio, emite la transmisión correspondiente a 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

Cada actividad tiene ajustes predeterminados para las métricas admitidas:

Actividad Frecuencia cardíaca Velocidad promedio Cambio de elevación Usar ubicación
Caminar 120 ppm 1.4 m/seg 20 m/min verdadero
Correr 170 ppm 2.3 m/seg 20 m/min verdadero
Hacer senderismo 150 ppm 1.3 m/seg 20 m/min verdadero
Nadar 150 ppm 1.6 m/seg 0.0 m/min verdadero
Correr en una cinta 160 ppm 2.3 m/seg 20 m/min falso

Detener

Para detener la actividad sintética, usa el siguiente comando:

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

Personalizada

Para obtener un control más preciso sobre las métricas que se generan, inicia una actividad física personalizada con la string de acción whs.synthetic.user.START_EXERCISE. Proporciona cualquier combinación de las siguientes marcas:

  • --ei exercise_options_duration_secs <int>: Duración del ejercicio en segundos. Valor predeterminado: 0.
  • --ei exercise_options_heart_rate <int>: Frecuencia cardíaca en pulsaciones por minuto. Promedio: 70.
  • --ef exercise_options_average_speed <float>: Velocidad promedio en metros por segundo. También afecta los pasos por minuto o la cadencia. Valor predeterminado: 0.
  • --ez exercise_options_use_location <boolean>: Indica si se deben emitir datos de ubicación durante el ejercicio (con una ruta predeterminada). Valor predeterminado: false.
  • --ef exercise_options_max_elevation_rate <float>: Tasa de cambio de elevación máxima posible en metros por minuto. Valor predeterminado: 0.

Por ejemplo, configura las opciones de ejercicio de la siguiente manera:

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

También puedes cambiar los tipos de datos disponibles, sin importar si el hardware real o el emulado admite un tipo de datos en particular. Por ejemplo, puedes habilitar o inhabilitar la elevación absoluta, como se muestra en el siguiente fragmento:

# 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

Otros estados y eventos

Estado de sueño

También puedes activar los estados de sueño para el usuario sintético. Se admiten dos estados: dormido y despierto.

Para ingresar al estado dormido, ejecuta este comando:

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

Para ingresar al estado despierto, ejecuta este comando:

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

Detección de caídas

Para simular una caída, ejecuta este comando:

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

Los Servicios de salud pueden tardar hasta un minuto en enviar el evento de caída.