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 un esercizio fosse in corso.

Se esegui il test su un emulatore con Wear OS 3 (livello API 30) o versioni successive, 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 versioni successive.

Utilizzare i dati sintetici su Wear OS 4 e versioni successive

Se esegui il test su un emulatore con Wear OS 4 (livello API 33) o versioni successive, puoi utilizzare i dati sintetici generati dall'emulatore per testare la tua app. In questo modo, vengono introdotti una serie di miglioramenti rispetto alla generazione dei dati sintetici sulle versioni precedenti di Wear OS:

Utilizzare il riquadro Sensore servizi sanitari

Il Feature Drop di Android Studio Koala (Canary) include un riquadro del sensore per i servizi sanitari su Wear OS. Il riquadro può essere utilizzato per simulare un dispositivo con o senza funzionalità di sensori specifici, che è importante da testare quando si creano app per il fitness su Wear OS.

Puoi anche utilizzare il riquadro per modificare i valori delle metriche e osservare come si adegua la tua app.

Per aprire e utilizzare il riquadro:

  1. Crea o apri un dispositivo virtuale Android (AVD) e esegui l'app sull'emulatore.
  2. Nel riquadro dell'emulatore, seleziona Wear Health Services. Apri il riquadro Servizi per la salute di Wear Si apre il riquadro Wear Health Services, che mostra un elenco di sensori disponibili su diversi dispositivi Android.

Dopo aver aperto il riquadro, puoi:

  • Passa da Funzionalità standard a Tutte le funzionalità (impostazione predefinita) per scegliere l'insieme di funzionalità attivate durante l'esercizio successivo. Puoi attivare o disattivare le singole funzionalità selezionando le caselle di controllo. Seleziona Applica per inviare l'elenco corrente delle funzionalità al dispositivo emulato e seleziona Reimposta per ripristinare i valori di attivazione/disattivazione predefiniti dell'elenco delle funzionalità.
  • Attiva diversi eventi utente dopo aver selezionato il pulsante a discesa Attiva eventi. Da qui puoi attivare la messa in pausa/la ripresa automatica delle attività fisiche, attivare gli eventi di sospensione dell'utente e attivare i colpi di golf che l'utente effettua su un campo da golf o da minigolf.
  • Sostituisci i valori dei sensori dopo aver iniziato un esercizio in un'app installata sull'emulatore. Dopo aver inserito nuovi valori per diverse metriche dell'allenamento, selezionare Applica per sincronizzarli con l'emulatore. Questo è utile per verificare il modo in cui la tua app gestisce diverse condizioni di allenamento e le tendenze di fitness degli utenti.

Generare dati sintetici con l'emulatore

Puoi anche eseguire l'app senza il riquadro del sensore e consentire all'emulatore di generare automaticamente i dati.

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

Tieni inoltre presente che l'emulatore genera gli stessi valori di dati per ogni esercizio.

Simulare eventi

Puoi simulare vari eventi nell'emulatore, ad esempio AUTO_PAUSE_DETECTED. Per attivare questi eventi, puoi utilizzare 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

Ripresa automatica rilevata

whs.AUTO_RESUME_DETECTED

Caduta rilevata

whs.FALL_OVER

Sonno rilevato

whs.START_SLEEPING

Sospensione rilevata

whs.STOP_SLEEPING

Golf Shot Detected

whs.GOLF_SHOT

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

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

Per gli eventi relativi ai colpi di golf, devi specificare parametri aggiuntivi per il tipo di swing del colpo di golf, che sono descritti di seguito:

Tipo di swing del colpo di golf

Parametro

Tipo di colpo di approccio

putt

Tipo di apertura parziale

parziale

Tipo di altalena completa

massima

Aggiungi il tipo di colpo di golf dopo aver specificato l'evento relativo al 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 colpo di golf parziale:

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

Utilizzare i dati sintetici su Wear OS 3

Se esegui il test su un emulatore con Wear OS 3, puoi anche utilizzare dati sintetici per testare la tua app.

Attivare 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, esegui i comandi descritti in questa pagina per controllare il comportamento dell'utente sintetico.

Disattivare la generazione di dati sintetici

Per tornare a utilizzare i sensori reali, esegui il seguente comando:

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

Esercizi sintetici

I servizi per la salute supportano i seguenti tipi di esercizio:

  • A piedi: whs.synthetic.user.START_WALKING
  • In esecuzione: whs.synthetic.user.START_RUNNING
  • Escursionismo: 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:

  • Frequenza cardiaca
  • Contapassi al minuto
  • Posizione GPS, utilizzando un unico percorso predefinito
  • Durata dell'attività
  • Altezza e piani

Inoltre, è possibile generare i seguenti stati:

  • Stato del sonno: addormentato o sveglio
  • Rilevamento cadute

Inizia

Per iniziare a simulare un esercizio, emetti 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 preset per le metriche supportate:

Attività Frequenza cardiaca Velocità media Variazione di altitudine Usa posizione
Passeggiate 120 b/m 1,4 m/sec 20,0 m/min vero
In funzione 170 bpm 2,3 m/sec 20,0 m/min vero
Escursionismo 150 b/m 1,3 m/sec 20,0 m/min vero
Nuoto 150 b/m 1,6 m/sec 0,0 m/min vero
Corsa sul tapis roulant 160 bpm 2,3 m/sec 20,0 m/min falso

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

Personalizzata

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

  • --ei exercise_options_duration_secs <int>: durata dell'esercizio 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. Influisce anche sui passi al minuto o sulla cadenza. Valore predefinito: 0.
  • --ez exercise_options_use_location <boolean>: indica se emettere dati sulla posizione durante l'esercizio utilizzando un percorso predefinito. Valore predefinito: false.
  • --ef exercise_options_max_elevation_rate <float>: tasso massimo di variazione dell'elevazione in metri al minuto. Valore predefinito: 0.

Ad esempio, imposta le opzioni dell'esercizio 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 anche modificare i tipi di dati disponibili, a seconda che l'hardware reale o virtuale supporti o meno 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 di sospensione

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

Per passare allo stato di sospensione, esegui questo comando:

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

Per entrare nello stato attivo, 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

Potrebbero essere necessari fino a un minuto prima che i servizi sanitari inviino l'evento caduta.