Richiedi l'accesso in background ai dati dei sensori del corpo

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:

  1. Controlla se il criterio BODY_SENSORS è stato concesso. In caso contrario, richiedi l'autorizzazione.
  2. Controlla se il criterio BODY_SENSORS_BACKGROUND è stato concesso. In caso contrario, richiedi l'autorizzazione.
L&#39;opzione Sempre è la prima voce dell&#39;elenco nella schermata delle impostazioni
Figura 1. L'impostazione dei sensori include un'opzione denominata Sempre, che concede l'accesso ai dati del sensore in background.

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

Il testo del link è &quot;Vai alle impostazioni&quot;
Figura 2. La finestra di dialogo delle autorizzazioni include un link per indirizzare gli utenti alle autorizzazioni dei sensori dell'app nelle impostazioni di sistema.

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.