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 seu app como se um exercício estivesse realmente acontecendo.

Se você estiver testando em um emulador que executa o Wear OS 3 (nível 30 da API) ou mais recente, use os dados sintéticos gerados pelo emulador. Consulte o guia a seguir para saber mais sobre as diferenças entre a geração de dados sintéticos para Wear OS 3 e versões mais recentes.

Usar dados sintéticos no Wear OS 4 e em versões mais recentes

Se você estiver testando em um emulador com o Wear OS 4 (nível 33 da API) ou versões mais recentes, use dados sintéticos gerados pelo emulador para testar o app. Isso introduz várias melhorias em relação à forma como os dados sintéticos são gerados em versões anteriores do Wear OS:

Usar o painel de sensores dos Recursos de saúde

A Atualização de recursos do Android Studio Koala (Canary) inclui um painel de sensores dos Recursos de saúde no Wear OS. O painel pode ser usado para simular um dispositivo com ou sem recursos específicos do sensor, o que é importante para testar ao criar apps de fitness no Wear OS.

Você também pode usar o painel para mudar os valores das métricas e observar como o app se ajusta.

Para abrir e usar o painel, faça o seguinte:

  1. Crie ou abra um Dispositivo virtual Android (AVD) e execute o app no emulador.
  2. No painel do emulador, selecione Wear Health Services. Abrir o painel do Wear Health Services O painel Recursos de saúde do Wear é aberto, mostrando uma lista de sensores disponíveis em diferentes dispositivos Android.

Depois que o painel abrir, você poderá fazer o seguinte:

  • Alterne entre Recursos padrão e Todos os recursos (padrão) para escolher o conjunto de recursos que serão ativados durante o próximo exercício. Para ativar ou desativar recursos individuais, marque as caixas de seleção. Selecione Aplicar para enviar a lista atual de recursos ao dispositivo emulado e Redefinir para restaurar os valores padrão de ativação/desativação da lista de recursos.
  • Acione diferentes eventos de usuário depois de selecionar o botão suspenso Acionar eventos. Aqui, você pode ativar a pausa/retomada automática de atividades de fitness, ativar eventos de sono pelo usuário e ativar tacadas de golfe que o usuário faz em um campo de golfe ou minigolfe.
  • Substitua os valores do sensor depois de iniciar um exercício em um app instalado no emulador. Depois de inserir novos valores para diferentes métricas de exercícios, selecione Aplicar para sincronizar esses valores com o emulador. Isso é útil para testar como o app lida com diferentes condições de exercício e tendências de condicionamento físico dos usuários.

Gerar dados sintéticos com o emulador

Você também pode executar o app sem o painel de sensores e gerar dados automaticamente com o emulador.

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

O emulador gera os mesmos valores de dados para cada exercício.

Simular eventos

É possível 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

Chave

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

Parada para dormir 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 tacada de golfe, especifique parâmetros adicionais para tipo de swing de tacada de golfe, que estão descritos na tabela a seguir:

Tabela 1: eventos e chaves

Tipo de swing de tacada de golfe

Parâmetro

Tipo de tacada

putt

Tipo de abertura parcial

parcial

Tipo de balanço completo

máximo

Adicione o tipo de swing do golpe de golfe depois de especificar o evento:

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 um golpe parcial de golfe:

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 em 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
    

Após a ativação, 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
Corrida 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 e forneça qualquer combinação das flags abaixo:

  • --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.