Simulare i dati dei sensori con Health Services

Utilizza i dati sintetici generati da Health Services su Wear OS per testare la tua app come se fosse davvero in corso un allenamento.

Se stai eseguendo il test su un emulatore con Wear OS 4 (API 33) o Wear OS 3 (API 30), puoi utilizzare i dati sintetici generati dall'emulatore. Consulta la seguente guida per scoprire di più sulle differenze tra la generazione di dati sintetici per Wear OS 3 e Wear OS 4.

Utilizzare dati sintetici su Wear OS 4

Se stai eseguendo test su un emulatore con Wear OS 4 (API 33), puoi utilizzare i dati sintetici generati dall'emulatore per testare la tua app. Questo introduce una serie di miglioramenti relativi alla modalità di generazione dei dati sintetici su Wear OS 3:

Utilizza i controlli in-app per avviare, sospendere e terminare la generazione di dati sintetici.

Tieni inoltre presente che l'emulatore genera gli stessi valori dei dati per ogni allenamento.

Simulare eventi

Puoi simulare diversi eventi nell'emulatore, ad esempio AUTO_PAUSE_DETECTED. Per attivare questi eventi è possibile usare il seguente comando:

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

Eventi sintetici

Evento

Chiave

Pausa automatica rilevata

whs.AUTO_PAUSE_DETECTED

Ripristino automatico rilevato

whs.AUTO_RESUME_DETECTED

Caduta rilevata

whs.FALL_OVER

Sonno rilevato

whs.START_SLEEPING

Interruzione sonno rilevata

whs.STOP_SLEEPING

Tiro di golf rilevato

whs.GOLF_SHOT

Ad esempio, puoi utilizzare il seguente comando per attivare un evento di pausa automatica:

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

Per gli eventi del colpo di golf, devi specificare parametri aggiuntivi per tipo di swing del tiro da golf, descritti di seguito:

Tipo di altalena per tiro da golf

Parametro

Tipo di putt per altalena

putt

Tipo di apertura parziale

parziale

Tipo di altalena

massima

Aggiungi il tipo di swing del golf dopo aver specificato l'evento del colpo di golf:

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

Ad esempio, il seguente comando attiva un tiro di golf parziale:

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

Utilizzare dati sintetici su Wear OS 3

Se stai eseguendo il test su un emulatore con Wear OS 3, puoi utilizzare anche dati sintetici per testare l'app.

Attiva la generazione di dati sintetici

Completa i seguenti passaggi per attivare la generazione di dati sintetici su Wear OS 3.

  1. Attiva le opzioni sviluppatore.
  2. Esegui il seguente comando adb per attivare la modalità sintetica:

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

Una volta attivata la generazione di dati sintetici, invia i comandi descritti in questa pagina per controllare il comportamento dell'"utente sintetico".

Disattiva la generazione di dati sintetici

Per tornare a utilizzare sensori reali, esegui questo comando:

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

Esercizi sintetici

Health Services supporta i seguenti tipi di esercizi:

  • A piedi: whs.synthetic.user.START_WALKING
  • In esecuzione: whs.synthetic.user.START_RUNNING
  • Escursione: whs.synthetic.user.START_HIKING
  • Nuoto: whs.synthetic.user.START_SWIMMING
  • Corsa su tapis roulant: whs.synthetic.user.START_RUNNING_TREADMILL

Gli esercizi generano dati sintetici realistici per i seguenti tipi di dati:

  • Battito cardiaco
  • Conteggio passi al minuto
  • Posizione GPS, utilizzando un singolo percorso predefinito
  • Durata dell'attività
  • Altitudine e piani

Inoltre, possono essere generati i seguenti stati:

  • Stato del sonno: addormentato o sveglio
  • Rilevamento cadute

Avvia

Per iniziare a simulare un allenamento, invia la trasmissione appropriata 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

Ogni attività ha alcune preimpostazioni per le metriche supportate:

Attività Battito cardiaco Velocità media Dislivello Usa posizione
Passeggiate 120 b/m 1,4 m/sec 20,0 m/min true
Attivo 170 b/m 2,3 m/sec 20,0 m/min true
Escursioni 150 b/m 1,3 m/sec 20,0 m/min true
Nuoto 150 b/m 1,6 m/sec 0,0 m/min true
Corsa su tapis roulant 160 b/m 2,3 m/sec 20,0 m/min false

Interrompi

Per interrompere l'attività sintetica, utilizza il seguente comando:

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

Personalizzato

Per un controllo più preciso sulle metriche generate, avvia un'attività di allenamento personalizzata utilizzando la stringa di azione whs.synthetic.user.START_EXERCISE. Fornisci qualsiasi combinazione dei seguenti flag:

  • --ei exercise_options_duration_secs <int>: durata dell'allenamento in secondi. Valore predefinito: 0.
  • --ei exercise_options_heart_rate <int>: battito cardiaco in battiti al minuto. Media: 70.
  • --ef exercise_options_average_speed <float>: velocità media in metri al secondo. Interessa anche i passi al minuto, o cadence. Valore predefinito: 0.
  • --ez exercise_options_use_location <boolean>: se inviare dati sulla posizione durante l'allenamento, utilizzando una route predefinita. Valore predefinito: false.
  • --ef exercise_options_max_elevation_rate <float>: frequenza massima di variazione di altitudine in metri al minuto. Valore predefinito: 0.

Ad esempio, imposta le opzioni di allenamento nel seguente modo:

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

Puoi inoltre modificare i tipi di dati disponibili, indipendentemente dal fatto che l'hardware reale o emulato supporti un determinato tipo di dati. Ad esempio, puoi attivare o disattivare l'elevazione assoluta, come mostrato nello snippet seguente:

# 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

Altri stati ed eventi

Stato sonno

Puoi anche attivare gli stati di sonno per l'utente sintetico. Sono supportati due stati: addormentato e sveglio.

Per attivare lo stato di sospensione, esegui questo comando:

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

Per attivare lo stato di attivazione, esegui questo comando:

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

Rilevamento cadute

Per simulare una caduta, esegui questo comando:

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

I servizi sanitari potrebbero impiegare fino a un minuto per consegnare l'evento autunnale.