Android 13 e Wear OS 4 introducono un modo per le app di accedere dai sensori del corpo, come il battito cardiaco, in background. Questo nuovo modello di accesso è simile a quello che ha introdotto l'accesso alla posizione in background in Android 10 (livello API 29).
Se la tua app deve accedere alle informazioni dei sensori del corpo in background, ad esempio durante il monitoraggio dei dati dei servizi sanitari in background, devi richiedere l'autorizzazione BODY_SENSORS_BACKGROUND
.
Come descritto nella pagina delle best practice per la privacy, le app devono chiedere l'autorizzazione BODY_SENSORS_BACKGROUND
soltanto quando è fondamentale per la funzionalità rivolta agli utenti e devono comunicarlo correttamente agli utenti.
La procedura per concedere l'autorizzazione dipende dalla versione dell'SDK target dell'app.
L'app ha come target Android 13 o versioni successive
Oltre all'autorizzazione BODY_SENSORS
esistente, dichiara l'autorizzazione
BODY_SENSORS_BACKGROUND
nel file manifest:
<uses-permission android:name="android.permission.BODY_SENSORS">
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND">
Quindi, l'app deve richiedere le autorizzazioni in operazioni separate:
- Controlla se il criterio
BODY_SENSORS
è stato concesso. In caso contrario, richiedi l'autorizzazione. - Controlla se il criterio
BODY_SENSORS_BACKGROUND
è stato concesso. In caso contrario, richiedi l'autorizzazione.
Attenzione: se la tua app richiede entrambe le autorizzazioni per il sensore del corpo contemporaneamente, il sistema ignora la richiesta e non concede nessuna autorizzazione all'app.
Su Android 13 (livello API 33) e versioni successive, la finestra di dialogo delle autorizzazioni di runtime non include l'opzione "Consenti sempre". Gli utenti devono invece abilitare l'accesso costante
ai sensori in background dalle impostazioni di sistema, come mostrato nella Figura 1. Quando
richiedi l'autorizzazione BODY_SENSORS_BACKGROUND
dopo aver concesso l'autorizzazione
BODY_SENSORS
, puoi aiutare gli utenti ad accedere a questa pagina delle impostazioni. Se gli utenti rifiutano l'accesso continuo, devono poter continuare a utilizzare la tua app.
L'app ha come target una versione precedente
Se la tua app ha come target una versione di Android precedente ad Android 13, l'accesso in background non viene concesso automaticamente quando richiedi l'autorizzazione BODY_SENSORS
. Gli utenti visualizzano invece una finestra di dialogo di sistema che invita gli utenti ad accedere alle impostazioni di autorizzazione dei sensori dell'app, come mostrato nella Figura 2. Successivamente, gli utenti devono
abilitare l'utilizzo del sensore di sfondo nella pagina delle impostazioni.
Gli utenti possono rifiutare l'accesso in background. L'operazione ha lo stesso effetto della revoca dell'autorizzazione BODY_SENSORS
mentre l'app è in esecuzione in background. Quando un'app utilizza PassiveMonitoringClient
senza autorizzazione di accesso in background ed entra in background, perde l'autorizzazione BODY_SENSORS
e viene chiamato il callback onPermissionLost()
. Per questi motivi, è particolarmente importante seguire le best practice per richiedere le autorizzazioni di runtime.