Demander l'accès en arrière-plan aux données des capteurs corporels

Android 13 et Wear OS 4 permettent aux applications d'accéder en arrière-plan aux capteurs corporels, tels que la fréquence cardiaque. Ce nouveau modèle d'accès est semblable à celui qui a été introduit pour l'accès à la localisation en arrière-plan sous Android 10 (niveau d'API 29).

Si votre application doit accéder aux informations de capteurs corporels en arrière-plan, par exemple pour surveiller les données de Services Santé, vous devez demander l'autorisation BODY_SENSORS_BACKGROUND.

Comme indiqué sur la page Bonnes pratiques concernant la confidentialité, les applications ne doivent demander l'autorisation BODY_SENSORS_BACKGROUND que lorsqu'elle est indispensable pour une fonctionnalité visible par l'utilisateur. Elles doivent également divulguer correctement cette information aux utilisateurs.

Le processus d'attribution de l'autorisation dépend de la version du SDK cible de votre application.

L'application cible Android 13 ou version ultérieure

En plus de l'autorisation BODY_SENSORS existante, déclarez l'autorisation BODY_SENSORS_BACKGROUND dans le fichier manifeste :

<uses-permission android:name="android.permission.BODY_SENSORS">
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND">

Votre application doit ensuite demander les autorisations dans des opérations distinctes :

  1. Vérifiez si BODY_SENSORS est accordée. Si ce n'est pas le cas, demandez cette autorisation.
  2. Vérifiez si BODY_SENSORS_BACKGROUND est accordée. Si ce n'est pas le cas, demandez cette autorisation.
La première option de l&#39;écran des paramètres active l&#39;accès en permanence
Figure 1. Le paramètre des capteurs inclut l'option All the time (Tout le temps), qui accorde l'accès aux données des capteurs en arrière-plan.

Attention : Si votre application demande les deux autorisations d'accès aux capteurs corporels en même temps, le système ignore la requête et ne lui accorde aucune autorisation.

Sous Android 13 (niveau d'API 33) ou version ultérieure, la boîte de dialogue d'autorisation d'exécution n'inclut pas l'option "Allow all the time" (Toujours autoriser). À la place, les utilisateurs doivent activer l'accès permanent aux capteurs d'arrière-plan à partir des paramètres système, comme illustré dans la figure 1. Lorsque vous demandez l'autorisation BODY_SENSORS_BACKGROUND après avoir accordé l'autorisation BODY_SENSORS, vous pouvez aider les utilisateurs à accéder à cette page de paramètres. Si les utilisateurs refusent l'accès permanent, ils doivent pouvoir continuer à utiliser votre application.

L'application cible une version antérieure

Le texte du lien est &quot;Go to settings&quot; (Accéder aux paramètres)
Figure 2. La boîte de dialogue d'autorisation inclut un lien permettant d'accéder aux autorisations des capteurs de l'application dans les paramètres système.

Lorsque votre application cible une version d'Android antérieure à Android 13, l'accès en arrière-plan n'est pas accordé automatiquement lorsque vous demandez l'autorisation BODY_SENSORS. Au lieu de cela, une boîte de dialogue système les invite à accéder aux paramètres d'autorisation des capteurs de votre application, comme illustré dans la figure 2. Les utilisateurs doivent ensuite activer l'utilisation des capteurs en arrière-plan sur cette page de paramètres.

Les utilisateurs peuvent refuser l'accès en arrière-plan. Cela revient à révoquer l'autorisation BODY_SENSORS lorsque votre application s'exécute en arrière-plan. Lorsqu'une application utilise PassiveMonitoringClient sans autorisation d'accès en arrière-plan et qu'elle passe en arrière-plan, elle perd l'autorisation BODY_SENSORS, et le rappel onPermissionLost() est appelé. C'est pourquoi il est particulièrement important de respecter les bonnes pratiques pour demander des autorisations d'exécution.