Améliorer la compatibilité des applications sur tous les appareils Wear OS

L'API Services Santé de Wear (WHS) est un composant obligatoire pour tous les appareils exécutant Wear OS 3 et versions ultérieures, car elle offre une plate-forme d'intégration cohérente aux développeurs du secteur de la santé et de la remise en forme. Créez votre application pour qu'elle s'adapte de manière fluide à de nombreux appareils et à leurs fonctionnalités différentes, afin de maintenir la compatibilité entre les appareils et d'éviter les problèmes d'expérience utilisateur. Pour ce faire, déclarez les dépendances uniquement pour les clients utilisés par votre application. De plus, laissez à votre application la possibilité d'afficher ou de supprimer des métriques avancées facultatives en fonction de leur disponibilité.

Différents capteurs génèrent des données à des fréquences différentes selon l'appareil, en fonction de la plate-forme matérielle et de capteur sous-jacente. Par exemple, un appareil peut renvoyer la fréquence cardiaque à un horodatage et un lieu à un autre. Créez des applications qui peuvent recevoir des flux de données indépendants à différents horodatages ou à des horodatages qui se chevauchent.

Ce guide décrit les types de données et les comportements attendus par différents clients dans Services Santé de Wear.

Client de l'exercice

Les sections suivantes décrivent les comportements et les types de données attendus d'ExerciseClient.

Comportements attendus

Pour ExerciseClient, certains types d'exercices dépendent de la disponibilité de certains types de données. Par exemple, les exercices en fauteuil roulant ne sont disponibles que si l'utilisation d'un fauteuil roulant est prise en charge. Activez et désactivez ces options en fonction de leur disponibilité sur un appareil donné.

La plupart des types de données d'exercice sont échantillonnés et diffusés à une seconde d'intervalle, à quelques exceptions près :

  • Dans certains cas, certains types de données d'exercice sont mis à jour plusieurs fois par seconde. Par exemple, lorsque l'utilisateur court, le nombre de pas est mis à jour plusieurs fois par seconde.
  • Pour certains types de données, une mise à jour n'est diffusée que si la valeur actuelle est différente de la valeur précédente.

La diffusion des données peut se faire par streaming ou par lot. Les données sont diffusées pendant que le processeur d'application est activé, c'est-à-dire généralement lorsque l'écran est allumé et interactif. Une fois l'écran éteint ou en mode Veille (activé, mais non interactif), les données sont regroupées pour économiser de l'énergie. Les données par lot sont transmises à l'application lorsque le processeur de l'application se rallume, parce que la montre sort du mode Veille, ou lorsque les tampons de traitement par lot sont saturés, ce qui varie selon l'appareil. Le taux d'échantillonnage reste le même tant que l'appareil est en mode Veille. Un lot transmis possède donc toujours des points de données à haute fréquence.

Les types de données sont dérivés uniquement des données générées par les capteurs de la montre. Par exemple, les données de localisation proviennent entièrement de la montre, et non du téléphone.

Types de données

L'API ExerciseClient vous permet de démarrer, de mettre en pause, de reprendre et d'arrêter des entraînements de différents types. Pour chaque exercice, WHS définit un ensemble de types de données mis à votre disposition pour ce type d'exercice. Cela permet d'économiser de l'énergie et simplifie la logique de l'application, car les capteurs non requis pour un exercice donné ne sont pas activés. Par exemple, lorsque vous lancez une course, les données de localisation ne sont fournies et suivies que pour une course en extérieur. Lorsque vous faites un exercice de vélo, les pas ne sont pas fournis ni suivis. Les sections suivantes décrivent les types de données compatibles avec ExerciseClient.

Types de données garantis pour les exercices

Les types de données d'exercice suivants sont disponibles sur tous les appareils.

  • Les types de données d'échantillons ont un type de données _STATS correspondant qui renvoie les valeurs minimale, maximale et moyenne de l'exercice. Par exemple, les statistiques PACE peuvent être extraites avec le type de données PACE_STATS.
  • Les types de données par intervalle sont associés au type de données _TOTAL, qui renvoie la valeur cumulée de l'exercice. Par exemple, les statistiques DISTANCE peuvent être extraites avec le type de données DISTANCE_TOTAL.
Métrique Données attendues Remarques sur les comportements attendus
HEART_RATE_BPM Battements par minute [Type de données : double] Tous les appareils font un échantillonnage de la fréquence cardiaque une fois par seconde pendant un exercice. Certains appareils signalent une valeur de BPM toutes les secondes. Certains appareils ne signalent une valeur de BPM que si elle a changé depuis la valeur précédente. Ne vous attendez pas à recevoir une valeur de BPM à chaque intervalle d'une seconde sur tous les appareils.
LOCATION Latitude et longitude [Type de données : double] Les données de localisation reposent uniquement sur le GPS de la montre. Ne vous attendez pas à ce que les données de localisation proviennent du Fused Location Provider ou d'autres services Android. Chaque point de données comprend également une valeur de précision (également appelée erreur de position horizontale) et une disponibilité.
STEPS [Type de données : long] Le nombre de pas est un total cumulé pour la durée de l'exercice. Il n'inclut pas les temps de mise en pause.
DISTANCE Mètres [Type de données : double] Elle est calculée à partir de la position donnée par le GPS ou des pas, si le GPS n'est pas disponible. Cette valeur s'entend sur la durée de l'exercice, à l'exclusion de la durée des mises en pause.
SPEED [mètres / seconde] [Type de données : double] Renvoie les valeurs minimale, maximale et moyenne. Ces valeurs s'entendent sur la durée de l'exercice, à l'exclusion de la durée des mises en pause.
PACE [secondes / mètre] [Type de données : double] La valeur par défaut est de 0 si la vitesse est de 0. Les moyennes s'entendent sur la durée de l'exercice, à l'exclusion de la durée des mises en pause.
ELEVATION_GAIN Mètres. [Type de données : double] Variations positives de l'altitude. Cette valeur s'entend sur la durée de l'exercice, à l'exclusion de la durée des mises en pause.
TOTAL_CALORIES kCal [Type de données : double] Calories brûlées en activité ajoutées au taux métabolique de base. Les calories émises ici tiennent compte de la taille, du poids, de l'âge et du genre de l'utilisateur, comme indiqué dans les paramètres système. Les calories ne tiennent pas compte des données de profil de l'utilisateur collectées dans votre application. Le total indiqué correspond à la durée de l'exercice, à l'exception de la durée pendant laquelle l'exercice est en pause.

Types de données facultatifs pour les exercices

Les types de données énumérés ci-après ne sont disponibles que sur certains appareils. Consultez la documentation de référence de Jetpack pour obtenir la liste complète des DataTypes. Si un DataType ne figure pas dans la liste "obligatoire/garantie" précédente, c'est qu'il est facultatif.

Consultez ci-dessous les exemples de types de données facultatifs. Cette liste n'est pas exhaustive :

Métrique Données attendues Remarques sur les comportements attendus
ABSOLUTE_ELEVATION [Type de données : double]
ELEVATION_LOSS Mètres [Type de données : double] Variations négatives de l'altitude. La valeur est positive. Par exemple, une perte d'altitude de 1 m est renvoyée avec une valeur de 1, et non de -1.
STEPS_PER_MINUTE [Type de données : long]
WHEELCHAIR_PUSHES [Type de données : long] Nombre de poussées de fauteuil roulant pour les exercices en fauteuil.
REP_COUNT [Type de données : long]
SWIM_STROKE_COUNT [Type de données : long]
SWIM_LAP_COUNT [Type de données : long]

Types de données par exercice

Des types de données différents sont renvoyés pour chaque type d'exercice. Les types de données renvoyés sont conformes aux besoins de l'exercice. Par exemple, le type d'exercice BIKING ne renvoie pas le type de données STEPS. Veuillez utiliser la méthode Capabilities au moment de l'exécution pour déterminer les types de données compatibles avec l'appareil de l'utilisateur.

Au minimum, tous les types d'exercices renvoient des données sur la fréquence cardiaque et les calories. D'autres exercices peuvent être compatibles avec d'autres types de données, en fonction des exigences de l'exercice.

Voici quelques exemples :

  • Les exercices comme la méditation ou les pilates n'acceptent que le rythme cardiaque et les calories.
  • Les exercices comme le basket-ball ou le badminton permettent de suivre la fréquence cardiaque, les calories, la distance et les pas.
  • Les exercices comme la marche et la course à pied permettent de suivre la fréquence cardiaque, les calories, la distance, le nombre de pas, la vitesse et le rythme.
  • La natation prend en charge la fréquence cardiaque, les calories, la distance et le nombre de longueurs de bassin.

Client de surveillance passive

Les types de données suivants sont obligatoires pour tous les appareils exécutant Wear OS afin de prendre en charge les applications qui surveillent de façon passive les données de santé telles que la fréquence cardiaque et le nombre de pas. Chacun de ces types de données doit être dérivé uniquement des données générées par les capteurs de la montre.

Comportements attendus

Pour économiser l'autonomie de la batterie, les mesures des capteurs obtenues à l'aide de la surveillance passive sont stockées sur le microcontrôleur et regroupées dans Services Santé. Ces résultats par lot sont renvoyés à différents intervalles en fonction du comportement du système. Il peut s'agir, par exemple, de lots renvoyés lorsque la mémoire tampon du capteur est saturée ou lorsque l'utilisateur interagit avec l'écran.

Ne supposez pas d'intervalles de traitement par lot prédéfinis ou prévisibles pour les types de données.

Types de données de surveillance passive

Métrique Données attendues Notes
HEART_RATE_BPM Battements par minute [Type de données : double] Les appareils peuvent afficher les données de fréquence cardiaque à différents intervalles. La mesure peut prendre plusieurs secondes pour certains appareils. D'autres appareils peuvent effectuer une mesure toutes les 10 minutes. Ces intervalles ne sont pas accessibles aux applications. Les applications doivent s'adapter parfaitement à différents intervalles d'échantillonnage.
STEPS_DAILY/STEPS [Type de données : long] Le nombre de pas quotidiens correspond au nombre total de pas effectués depuis la dernière réinitialisation. Ils sont déclenchés par WHS à minuit. Cela inclut tous les pas effectués pendant la mise en pause d'un exercice. Les pas sont un delta précis depuis la dernière vérification.
DISTANCE_DAILY/DISTANCE Mètres [Type de données : double] Calculé grâce à l'accéléromètre/aux pas. N'effectuez pas de calculs pendant l'utilisation du GPS pour vous assurer que les utilisateurs qui ont désactivé les services de localisation puissent toujours recevoir le nombre exact de pas.
SPEED [mètres / seconde] [Type de données : double]
CALORIES_DAILY kCal [Type de données : double] Calories pour la journée, y compris les calories actives et le taux métabolique de base. La valeur calorique émise ici tient compte de la taille, du poids, de l'âge et du genre de l'utilisateur, tel que spécifié dans les paramètres système. Les calories ne sont pas ajustées en fonction des données de profil de l'utilisateur collectées dans votre application.
RUNNING_STEPS (facultatif) [Type de données : long] Delta de pas au cours d'un exercice ou d'une autre activité. Suivez les deux en même temps.
WALKING_STEPS (facultatif) [Type de données : long]
ELEVATION_GAIN Mètres [Type de données : double] Inclut uniquement les deltas positifs en altitude.
ELEVATION_LOSS Mètres [Type de données : double] N'inclut que les deltas négatifs en altitude.
ÉTAGES_JOURNAUX_ÉTAGES [Type de données : double] Peut être représenté par un étage "partiel"

Objectifs quotidiens de surveillance passive

Métrique Données attendues Notes
PAS_QUOTIDIENS [Type de données : long] Les pas quotidiens, y compris les pas effectués pendant la mise en pause d'un exercice, correspondent au nombre total de pas effectués depuis la dernière réinitialisation. Ce paramètre est réinitialisé à minuit par WHS.
ÉTAGES_JOURNAUX_ÉTAGES [Type de données : double] Peut être représenté par un escalier "partiel".
CALORIES_DAILY kCal [Type de données : double] Calories pour la journée, incluant les calories actives et le taux métabolique de base.
DISTANCE_DAILY Mètres [Type de données : double] Calculé à partir de l'accéléromètre ou du nombre de pas. Ne calculez pas cette mesure à l'aide du GPS afin que les utilisateurs qui ont désactivé les services de localisation puissent quand même recevoir des décomptes de pas précis.
DAILY_ELEVATION_GAIN Mètres [Type de données : double] Inclut uniquement les deltas positifs en altitude.

MeasureClient

Utilisez MeasureClient pour mesurer la fréquence cardiaque à un moment donné.

Comportements attendus

MeasureClient et PassiveClient sont similaires d'une certaine manière. Ils fournissent tous les deux des statistiques de santé individuelles sans rapport avec un exercice. Vous pouvez utiliser les deux pour mesurer la fréquence cardiaque, mais la principale différence est que MeasureClient inclut la disponibilité des données de fréquence cardiaque, mais PassiveClient n'inclut pas d'informations sur la disponibilité.

Types de données

Métrique Données attendues Notes
HEART_RATE_BPM Battements par minute [Type de données : double] Inclut également la disponibilité.

Fonctionnalités disponibles

En plus des types de données d'exercice et des surveillances passives, les appareils prennent en charge des fonctionnalités supplémentaires pour déclencher des événements tels que le démarrage d'un exercice et la mesure de l'état (sommeil ou éveil). Certaines de ces fonctionnalités existent sur tous les appareils, tandis que d'autres n'existent que sur certains appareils.

Déclencheurs d'événements

Tous les appareils sont compatibles avec les déclencheurs courants suivants :

  • Objectifs quotidiens de distance et de pas
  • Objectifs d'exercice pour le nombre de pas, la distance et la durée.

D'autres appareils peuvent être compatibles avec des déclencheurs d'événements plus avancés. Voici quelques exemples :

  • Nombre de longueurs lors de la natation
  • Objectifs d'exercice pour les calories brûlées
  • Objectifs d'exercice pour une vitesse instantanée

États

Tous les appareils sont compatibles avec les fonctionnalités d'état de base. La fonctionnalité d'état indique si un utilisateur est en cours d'exercice actif ou non.

D'autres appareils peuvent fournir des fonctionnalités d'état supplémentaires. Certaines fonctionnalités d'état supplémentaires permettent de détecter si un exercice a été mis en pause ou repris automatiquement, ou si l'utilisateur est éveillé ou endormi.

Alertes de santé en surveillance passive

Certains appareils sont compatibles avec les alertes de santé. Ces fonctionnalités ne sont pas compatibles avec tous les appareils. Certaines alertes de santé permettent de détecter les anomalies de la fréquence cardiaque ou les chutes.