Come descritto nelle pagine Richiedi autorizzazioni di accesso alla posizione e Best practice per la privacy, le app devono richiedere solo il tipo di autorizzazione di accesso alla posizione fondamentale per la funzionalità rivolta agli utenti e comunicarlo correttamente agli utenti. La maggior parte dei casi d'uso richiede la posizione solo quando l'utente interagisce con l'app. Se la tua app richiede la posizione in background, ad esempio quando implementi il geofencing, assicurati che sia fondamentale per la funzionalità di base dell'app, offra vantaggi chiari all'utente e venga eseguita in modo evidente per l'utente.
Elenco di controllo per l'accesso alla posizione in background
Utilizza il seguente elenco di controllo per identificare la potenziale logica di accesso alla posizione in background:
Nel file manifest della tua app, verifica la presenza dell'autorizzazione
ACCESS_COARSE_LOCATIONe dell'autorizzazioneACCESS_FINE_LOCATION. Verifica che la tua app richieda queste autorizzazioni di accesso alla posizione.- Se la tua app ha come target Android 10 (livello API 29) o versioni successive, verifica anche l'autorizzazione
ACCESS_BACKGROUND_LOCATION. Verifica che la tua app abbia una funzionalità che lo richiede.
- Se la tua app ha come target Android 10 (livello API 29) o versioni successive, verifica anche l'autorizzazione
Cerca l'utilizzo di API di accesso alla posizione, come l'API Fused Location Provider, l'API Geofencing o l'API
LocationManager, all'interno del tuo codice, ad esempio nei seguenti costrutti:- Servizi in background
WorkManageroJobSchedulerattivitàAlarmManageroperazioni- Pending intent richiamati da un widget dell'app
Se la tua app utilizza un SDK o una libreria che accede alla posizione, questo accesso viene attribuito alla tua app. Per determinare se un SDK o una libreria richiede l'accesso alla posizione, consulta la documentazione della libreria.
Valuta l'accesso alla posizione in background
Se scopri che la tua app accede alla posizione in background, valuta la possibilità di intraprendere le seguenti azioni:
- Valuta se l'accesso alla posizione in background è fondamentale per la funzionalità di base dell'app.
Se non hai bisogno dell'accesso alla posizione in background, rimuovilo.
Se la tua app ha come target Android 10 (livello API 29) o versioni successive, rimuovi l'autorizzazione
ACCESS_BACKGROUND_LOCATIONdal file manifest dell'app. Se rimuovi questa autorizzazione, l'accesso alla posizione sempre attivo non è un'opzione per l'app sui dispositivi con Android 10.Assicurati che l'utente sia consapevole che la tua app accede alla posizione in background. Questo è particolarmente importante per i casi che non sono ovvi per gli utenti.
Se possibile, rifattorizza la logica di accesso alla posizione in modo da richiedere la posizione solo quando l'attività dell'app è visibile agli utenti.
Aggiornamenti limitati della posizione in background
Se l'accesso alla posizione in background è essenziale per la tua app, tieni presente che Android preserva la durata della batteria del dispositivo impostando limiti di accesso alla posizione in background sui dispositivi con Android 8.0 (livello API 26) e versioni successive. In queste versioni di Android, se l'app è in esecuzione in background, può ricevere aggiornamenti della posizione solo alcune volte all'ora. Per saperne di più, consulta Limiti di accesso alla posizione in background.
Risorse aggiuntive
Per scoprire di più sull'utilizzo della posizione in background, consulta i seguenti materiali:
Video
Come trovare un possibile utilizzo della posizione in background
Esempi
L'esempio di posizione in background mostra le best practice per accedere alla posizione quando l'app è in background.