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 une activité physique.

Si vous effectuez des tests sur un émulateur exécutant Wear OS 3 (niveau d'API 30) ou une version ultérieure, vous pouvez utiliser les 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 versions ultérieures.

Utiliser des données synthétiques sur Wear OS 4 ou version ultérieure

Si vous effectuez des tests sur un émulateur exécutant Wear OS 4 (niveau d'API 33) ou une version ultérieure, 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 sur les versions antérieures de Wear OS:

Utiliser le panneau des capteurs des Services Santé

La mise à jour groupée d'Android Studio Koala (Canary) inclut un panneau de capteurs Services Santé sur Wear OS. Le panneau peut être utilisé pour simuler un appareil disposant ou non de fonctionnalités de capteur spécifiques, ce qui est important à tester lors de la création d'applications de fitness sur Wear OS.

Vous pouvez également utiliser le panneau pour modifier les valeurs des métriques et observer l'ajustement de votre application.

Pour ouvrir et utiliser le panneau, procédez comme suit:

  1. Créez ou ouvrez un appareil virtuel Android (AVD) et exécutez votre application sur l'émulateur.
  2. Dans le panneau de l'émulateur, sélectionnez Wear Health Services (Services de santé Wear). Ouvrir le panneau "Services Santé Wear" Le panneau Services Santé Wear s'ouvre et affiche la liste des capteurs disponibles sur différents appareils Android.

Une fois le panneau ouvert, vous pouvez effectuer les opérations suivantes:

  • Basculez entre Fonctionnalités standards et Toutes les fonctionnalités (par défaut) pour choisir l'ensemble de fonctionnalités activées lors du prochain exercice. Vous pouvez activer ou désactiver des fonctionnalités individuelles en cochant les cases correspondantes. Sélectionnez Appliquer pour envoyer la liste actuelle des fonctionnalités à l'appareil émulé, puis Réinitialiser pour restaurer la liste des fonctionnalités à leurs valeurs d'activation/de désactivation par défaut.
  • Déclenchez différents événements utilisateur après avoir sélectionné le bouton déroulant Déclencher des événements. Vous pouvez ensuite déclencher la mise en pause/la reprise automatique des activités de fitness, déclencher des événements de sommeil par l'utilisateur et déclencher des coups de golf que l'utilisateur effectue sur un parcours de golf ou de mini-golf.
  • Forcer les valeurs des capteurs après avoir commencé un exercice dans une application installée sur l'émulateur. Une fois que vous avez saisi de nouvelles valeurs pour différentes métriques d'exercice, sélectionnez Appliquer pour synchroniser ces valeurs avec l'émulateur. Cela vous permet de tester la façon dont votre application gère différentes conditions d'exercice et les tendances de remise en forme des utilisateurs.

Générer des données synthétiques avec l'émulateur

Vous pouvez également exécuter votre application sans le panneau des capteurs et générer automatiquement des données par l'émulateur.

Utilisez les commandes de l'application pour démarrer, mettre en pause 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 différents événements dans l'émulateur, comme 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

Détection de la reprise automatique

whs.AUTO_RESUME_DETECTED

Chute détectée

whs.FALL_OVER

Sommeil détecté

whs.START_SLEEPING

Arrêt de la veille 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 pause 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 coup de golf, comme indiqué ci-dessous:

Type de swing pour le coup de golf

Paramètre

Type de putt avec élan

putt

Type de balançoire partielle

partiel

Type de balançoire complète

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 d'un "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
Course à pied 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.