Simule dados do sensor com os Recursos de saúde

Use dados sintéticos gerados pelos Recursos de saúde no Wear OS para testar o app como se um exercício estivesse realmente acontecendo.

Se você estiver testando um emulador com o Wear OS 4 (nível 33 da API) ou o Wear OS 3 (nível 30 da API), poderá usar dados sintéticos gerados pelo emulador. Consulte o guia abaixo para saber mais sobre as diferenças entre a geração de dados sintéticos do Wear OS 3 e do Wear OS 4.

Usar dados sintéticos no Wear OS 4

Se você estiver testando um emulador com o Wear OS 4 (API 33), poderá usar dados sintéticos gerados pelo emulador para testar seu app. Isso apresenta várias melhorias na forma como os dados sintéticos são gerados no Wear OS 3:

Use os controles no app para iniciar, pausar e encerrar a geração de dados sintéticos.

Além disso, o emulador gera os mesmos valores de dados para cada exercício.

Simular eventos

Você pode simular vários eventos no emulador, como AUTO_PAUSE_DETECTED. O comando a seguir pode ser usado para acionar esses eventos:

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

Eventos sintéticos

Evento

Tecla

Pausa automática detectada

whs.AUTO_PAUSE_DETECTED

Retomada automática detectada

whs.AUTO_RESUME_DETECTED

Queda detectada

whs.FALL_OVER

Sono detectado

whs.START_SLEEPING

Interrupção de sono detectada

whs.STOP_SLEEPING

Tacada de golfe detectada

whs.GOLF_SHOT

Por exemplo, é possível usar o seguinte comando para acionar um evento de pausa automática:

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

Para eventos de tacadas de golfe, é necessário especificar parâmetros adicionais para o tipo de tacada de golfe, descritos abaixo:

Tipo de balanço para tiro de golfe

Parâmetro

Tipo de tacada

putt

Tipo parcial de balanço

parciais

Balanço completo

máximo

Adicione o tipo de tacada de tacada de golfe depois de especificar o evento de tacada de golfe:

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

Por exemplo, o comando a seguir aciona uma tacada de golfe parcial:

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

Usar dados sintéticos no Wear OS 3

Se você estiver testando um emulador com o Wear OS 3, também poderá usar dados sintéticos para testar seu app.

Ativar a geração de dados sintéticos

Conclua as etapas a seguir para ativar a geração de dados sintéticos no Wear OS 3.

  1. Ative as opções do desenvolvedor.
  2. Execute o comando adb abaixo para ativar o modo sintético:

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

Depois que a geração de dados sintéticos estiver ativada, envie os comandos descritos nesta página para controlar o comportamento de um "usuário sintético".

Desativar a geração de dados sintéticos

Para voltar a usar sensores reais, execute este comando:

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

Exercícios sintéticos

Os Recursos de saúde têm suporte aos seguintes tipos de exercício:

  • Caminhada: whs.synthetic.user.START_WALKING
  • Corrida: whs.synthetic.user.START_RUNNING.
  • Trilha: whs.synthetic.user.START_HIKING.
  • Natação: whs.synthetic.user.START_SWIMMING.
  • Corrida na esteira: whs.synthetic.user.START_RUNNING_TREADMILL

Os exercícios geram dados sintéticos realistas para os tipos de dados abaixo:

  • Frequência cardíaca
  • Contagem de passos por minuto.
  • Localização do GPS, usando uma única rota padrão.
  • Duração da atividade.
  • Elevação e andares

Além disso, estes estados também podem ser gerados:

  • Estado de sono: dormindo ou acordado
  • Detecção de queda

Iniciar

Para começar a simular um exercício, emita a transmissão adequada para 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 atividade tem predefinições para as métricas disponíveis:

Atividade Frequência cardíaca Velocidade média Mudança na elevação Uso da localização
Caminhada 120 bpm 1,4 m/sec 20 m/min true
Correndo 170 bpm 2,3 m/sec 20 m/min true
Trilha 150 bpm 1,3 m/sec 20 m/min true
Natação 150 bpm 1,6 m/sec 0 m/min true
Corrida na esteira 160 bpm 2,3 m/sec 20 m/min false

Parar

Para interromper a atividade sintética, use este comando:

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

Personalizado

Para ter um controle mais preciso sobre quais métricas são geradas, inicie uma atividade física personalizada usando a string de ação whs.synthetic.user.START_EXERCISE. Forneça qualquer combinação das seguintes flags:

  • --ei exercise_options_duration_secs <int>: duração do exercício em segundos. Padrão: 0.
  • --ei exercise_options_heart_rate <int>: frequência cardíaca em batimentos por minuto. Média: 70.
  • --ef exercise_options_average_speed <float>: velocidade média em metros por segundo. Também afeta os passos por minuto ou a cadência. Padrão: 0.
  • --ez exercise_options_use_location <boolean>: define se dados de localização vão ser emitidos durante o exercício, usando uma rota padrão. Padrão: false.
  • --ef exercise_options_max_elevation_rate <float>: taxa de mudança de elevação máxima em metros por minuto. Padrão: 0.

Por exemplo, defina as opções de exercícios desta maneira:

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

Você também pode mudar os tipos de dados disponíveis, de acordo com o suporte no hardware real ou emulado para um tipo específico. Por exemplo, você pode ativar ou desativar a elevação absoluta, conforme mostrado no snippet abaixo:

# 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

Outros estados e eventos

Estado de sono

Também é possível acionar estados de sono para um usuário sintético. Há suporte para dois estados: "dormindo" e "acordado".

Para entrar no estado "dormindo", execute este comando:

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

Para entrar no estado "acordado", execute este comando:

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

Detecção de queda

Para simular uma queda, execute este comando:

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

Pode levar até um minuto para que os Recursos de saúde mostrem o evento de queda.