Simuler les données des capteurs avec Services Santé

Utilisez les données synthétiques générées par Services Santé sur Wear OS pour tester votre application comme si vous étiez en train de pratiquer un exercice.

Si vous effectuez le test sur un émulateur exécutant Wear OS 4 (API 33) ou Wear OS 3 (API 30), vous pouvez utiliser des données synthétiques générées par l'émulateur. Consultez le guide suivant pour en savoir plus sur les différences entre la génération de données synthétiques pour Wear OS 3 et Wear OS 4.

Utiliser des données synthétiques sur Wear OS 4

Si vous effectuez des tests sur un émulateur exécutant Wear OS 4 (API 33), vous pouvez utiliser les données synthétiques générées par l'émulateur pour tester votre application. Cela apporte un certain nombre d'améliorations par rapport à la façon dont les données synthétiques sont générées sous Wear OS 3:

Utilisez les commandes de votre application pour démarrer, suspendre et arrêter la génération de données synthétiques.

Notez également que l'émulateur génère les mêmes valeurs de données pour chaque exercice.

Simuler des événements

Vous pouvez simuler divers événements dans l'émulateur, tels que AUTO_PAUSE_DETECTED. Vous pouvez utiliser la commande suivante pour déclencher ces événements:

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

Événements synthétiques

Événement

Clé

Pause automatique détectée

whs.AUTO_PAUSE_DETECTED

Reprise automatique détectée

whs.AUTO_RESUME_DETECTED

Chute détectée

whs.FALL_OVER

Sommeil détecté

whs.START_SLEEPING

Arrêt du sommeil détecté

whs.STOP_SLEEPING

Coup de golf détecté

whs.GOLF_SHOT

Par exemple, vous pouvez utiliser la commande suivante pour déclencher un événement de mise en veille automatique:

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

Pour les événements de coup de golf, vous devez spécifier des paramètres supplémentaires pour le type de swing de golf, décrits ci-dessous:

Type de swing de golf

Paramètre

Type de putt swing

putt

Type partiel de balançoire

partielle

Type complet de balançoire

maximale

Ajoutez le type de coup de golf après avoir spécifié l'événement de coup de golf:

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

Par exemple, la commande suivante déclenche un coup de golf partiel:

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

Utiliser des données synthétiques sur Wear OS 3

Si vous effectuez des tests sur un émulateur exécutant Wear OS 3, vous pouvez également utiliser des données synthétiques pour tester votre application.

Activer la génération de données synthétiques

Pour activer la génération de données synthétiques sur Wear OS 3, procédez comme suit :

  1. Activez les options pour les développeurs.
  2. Exécutez la commande adb suivante pour activer le mode synthétique:

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

Une fois la génération de données synthétiques activée, exécutez les commandes décrites sur cette page pour contrôler le comportement de "l'utilisateur synthétique".

Désactiver la génération de données synthétiques

Pour rétablir l'utilisation de vrais capteurs, exécutez la commande suivante :

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

Simulations d'activités physiques

Les services de santé sont compatibles avec les activités suivantes :

  • Marche : whs.synthetic.user.START_WALKING
  • Course à pied : whs.synthetic.user.START_RUNNING
  • Randonnée : whs.synthetic.user.START_HIKING
  • Natation : whs.synthetic.user.START_SWIMMING
  • Course sur tapis roulant : whs.synthetic.user.START_RUNNING_TREADMILL

Ces simulations génèrent des données synthétiques réalistes pour les types de données suivants :

  • Fréquence cardiaque
  • Nombre de pas par minute
  • Localisation GPS (en utilisant une seule route par défaut)
  • Durée de l'activité
  • Altitude et étages

De plus, les états suivants peuvent être générés :

  • État du sommeil : endormi ou éveillé
  • Détection de chute

Démarrer

Pour lancer une simulation correspondant à une activité physique, envoyez l'annonce correspondante à 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

Chaque activité est prédéfinie dans les métriques acceptées :

Activité Fréquence cardiaque Vitesse moyenne Changement d'altitude Utiliser la position
Marche 120 bpm 1,4 m/s 20 m/min true
En cours d'exécution 170 bpm 2,3 m/s 20 m/min true
Randonnée 150 bpm 1,3 m/s 20 m/min true
Natation 150 bpm 1,6 m/s 0 m/min true
Course sur tapis roulant 160 bpm 2,3 m/s 20 m/min false

Arrêter

Pour arrêter l'activité artificielle, utilisez la commande suivante :

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

Personnaliser

Pour un contrôle plus précis des métriques générées, démarrez une activité personnalisée à l'aide de la chaîne d'action whs.synthetic.user.START_EXERCISE. Fournissez une combinaison des indicateurs suivants :

  • --ei exercise_options_duration_secs <int> : durée de l'activité en secondes. Valeur par défaut : 0.
  • --ei exercise_options_heart_rate <int> : fréquence cardiaque en battements par minute. Moyenne : 70.
  • --ef exercise_options_average_speed <float> : vitesse moyenne en mètres par seconde. Affecte également les pas par minute, ou cadence. Valeur par défaut : 0.
  • --ez exercise_options_use_location <boolean> permet d'émettre ou non des données de localisation pendant l'activité physique (en utilisant une route par défaut). Valeur par défaut : false.
  • --ef exercise_options_max_elevation_rate <float> : taux maximal de changement d'altitude possible, en mètres par minute. Valeur par défaut : 0.

Par exemple, définissez les options d'activité physique de la manière suivante :

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

Vous pouvez aussi modifier les types de données disponibles, indépendamment de leur prise en charge par le matériel réel ou émulé. Par exemple, vous pouvez activer ou désactiver l'altitude absolue, comme indiqué dans l'extrait suivant :

# 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

Autres états et événements

État de sommeil

Vous pouvez également déclencher des états de sommeil pour l'utilisateur synthétique. Deux états sont acceptés : endormi ou éveillé.

Pour passer en mode endormi, exécutez la commande suivante :

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

Pour activer l'état éveillé, exécutez la commande suivante :

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

Détection de chute

Pour simuler une chute, exécutez la commande suivante :

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

Les Services Santé peuvent prendre jusqu'à une minute pour communiquer l'événement de chute.