Le autorizzazioni di posizione Tristate in Android 10 offrono agli utenti un maggiore controllo sul modo in cui le app accedono alla posizione dei loro dispositivi.
In Android 9 e versioni precedenti, gli utenti hanno effettuato scelte persistenti quando concedevano l'accesso alla posizione alle app. Potrebbero negare o consentire , l'ultimo dei quali ha consentito alle app di accedere in qualsiasi momento (in primo piano e in background). Le autorizzazioni di posizione Tristate in Android 10 offrono agli utenti tre opzioni per consentire a un'app di accedere alla posizione di un dispositivo. Agli utenti viene richiesto di concedere o negare il livello di autorizzazione quando un'app lo richiede.
Un utente normalmente vede le tre scelte presentate nella Figura 1. Tuttavia, ci sono casi d'uso in cui sono richieste solo due di queste opzioni e in questi casi vengono mostrate solo queste due.

Queste sono le tre opzioni:
- Consenti sempre : la posizione del dispositivo è nota all'app anche quando l'app non è in uso (in esecuzione in background). Ciò equivale a consentire l'autorizzazione in Android 9 e versioni precedenti.
- Consenti solo mentre l'app è in uso : (solo in primo piano) la posizione del dispositivo è visibile all'app solo quando è attivamente in esecuzione.
- Nega : la posizione del dispositivo non è mai visibile dall'app. Questo equivale a negare l'autorizzazione in Android 9 e versioni precedenti.
Agli utenti viene richiesto di concedere l'autorizzazione di accesso alla posizione quando le app richiedono l'autorizzazione.
Una volta che un utente concede l'autorizzazione di accesso a Consenti solo mentre l'app è in uso , un'app può richiedere un aumento incrementale dell'accesso a Consenti sempre . L'utente vede una finestra di dialogo di richiesta (mostrata nella Figura 2 ). Se l'utente seleziona Mantieni accesso durante l'uso , quando l'app accede alla posizione del dispositivo al prossimo utilizzo, la finestra di dialogo offre l'opzione Mantieni e non chiedere più .
La finestra di dialogo viene visualizzata in queste condizioni per le app destinate ad Android 10:
- Dopo almeno 24 ore dalla concessione dell'autorizzazione.
- Solo se l'app riceve posizioni in background.
- Quando lo schermo è acceso e l'utente non utilizza un'altra app.

Per ulteriori informazioni sulla richiesta di autorizzazioni, consulta Accesso dell'app alla posizione del dispositivo . Per i dettagli se la tua app ha come target Android 9 e versioni precedenti, consulta Continuazione dell'azione avviata dall'utente .
Impatto
La funzione di autorizzazione alla posizione in tre stati interessa qualsiasi app che richiede l'accesso alla posizione del dispositivo durante l'esecuzione in background ed è richiesta in Android 10.
È possibile modificare il codice ma non modificare o personalizzare il comportamento relativo alle autorizzazioni nel framework.
Implementazione
Le autorizzazioni di posizione in tre stati vengono applicate alle app in Android 10 indipendentemente dall'SDK di destinazione di un'app.
Per informazioni sull'implementazione dei casi d'uso dell'app (sugli aggiornamenti), fare riferimento alla sezione Progettazione per gli scenari di aggiornamento del dispositivo nella documentazione per sviluppatori.
Per vedere come abilitare l'accesso per diversi casi d'uso (come richiedere l'accesso alla posizione in background per app come Google Maps o Google Play Services), visualizza questi argomenti nella pagina Accesso app alla posizione del dispositivo :
Accesso alla posizione in-app
Gli utenti possono modificare le autorizzazioni di accesso dell'app in Nega o Consenti solo durante l'utilizzo dell'app , se lo desiderano. Per l'autorizzazione di accesso alla posizione in-app e per tutte le app proprietarie e di terze parti, fornisci i livelli di controllo utente indicati nella tabella seguente.
L'app del tipo di autorizzazione deve essere richiesta | Opzioni utente da fornire |
---|---|
L'app richiede solo autorizzazioni in primo piano | Consenti solo durante l'utilizzo dell'app Negare |
L'app richiede sempre l'autorizzazione (in primo piano e in background) | Consenti sempre Consenti solo durante l'utilizzo dell'app Negare |
Tutte le app con richieste di accesso alla posizione | Consenti solo durante l'utilizzo dell'app |
Queste autorizzazioni si applicano a tutte le richieste di posizione. Le app con Consenti solo durante l'utilizzo delle autorizzazioni dell'app non sono consentite Wi-Fi in background o scansioni cellulari.
Su Android 11 o versioni precedenti, le app con Consenti solo durante l'utilizzo delle autorizzazioni dell'app non sono consentite scansioni Bluetooth in background. Da Android 12, le app con Consenti solo durante l'utilizzo delle autorizzazioni dell'app possono ottenere risultati di scansione Bluetooth impostando il valore dell'attributo android:usesPermissionFlags
su neverForLocation
. Per maggiori dettagli, vedi L'app non deriva la posizione fisica .
Aggiornamenti del sistema operativo
In un aggiornamento del sistema operativo ad Android 10, le autorizzazioni per la posizione dell'app si traducono in base a quanto segue:
- On diventa Consenti solo mentre è in uso .
- Spento rimane spento ( Nega ).
- L'accesso alla posizione pre-concesso diventa il pre-concessione Consenti solo durante l'uso .