Android 13 et Wear OS 4 permettent aux applications d'accéder aux capteurs corporels, comme la fréquence cardiaque, en arrière-plan. Ce nouveau modèle d'accès est semblable à celui qui a introduit l'accès aux données de 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 :
- Vérifiez si
BODY_SENSORS
est accordée. Si ce n'est pas le cas, demandez cette autorisation. - Vérifiez si
BODY_SENSORS_BACKGROUND
est accordée. Si ce n'est pas le cas, demandez cette autorisation.
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
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.