Autorizzazioni di posizione in tre stati

Le autorizzazioni di posizione a tre stati in Android 10 offrono agli utenti un maggiore controllo sul modo in cui le app accedono alle posizioni dei loro dispositivi.

In Android 9 e versioni precedenti, gli utenti facevano scelte persistenti quando concedevano l'accesso alla posizione alle app. Potevano negare o consentire , l'ultimo dei quali consentiva alle app di accedere in ogni momento (in primo piano e in background). Le autorizzazioni di posizione a tre stati 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 tali casi vengono mostrate solo quelle due.

Tristate location permissions screen
Figura 1. Schermata delle notifiche a tre stati

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 all'app. 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 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 l'accesso durante l'uso , quando l'app accede alla posizione del dispositivo al successivo 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.
Incremental permissions
Figura 2. Autorizzazioni incrementali

Per ulteriori informazioni sulla richiesta di autorizzazioni, consulta Accesso dell'app alla posizione del dispositivo . Per maggiori dettagli se la tua app è destinata ad Android 9 e versioni precedenti, vedi Continuazione dell'azione avviata dall'utente .

Impatto

La funzionalità delle autorizzazioni di posizione a tre stati influisce su qualsiasi app che necessita dell'accesso alla posizione del dispositivo mentre è in esecuzione in background ed è richiesta in Android 10.

Puoi modificare il tuo codice ma non puoi alterare o personalizzare il comportamento relativo alle autorizzazioni nel framework.

Implementazione

Le autorizzazioni di posizione a tre stati vengono applicate alle app in Android 10 indipendentemente dall'SDK di destinazione dell'app.

Per informazioni sull'implementazione dei casi d'uso della tua app (sugli aggiornamenti), fai riferimento alla sezione Progetta per scenari di aggiornamento del dispositivo nella documentazione per gli 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 su 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 richiedere 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 tutto il tempo
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. Alle app con Consenti solo mentre si utilizzano le autorizzazioni dell'app non sono consentite scansioni Wi-Fi o cellulari in background.

Su Android 11 o versioni precedenti, alle app con Consenti solo mentre si utilizzano le autorizzazioni dell'app non sono consentite scansioni Bluetooth in background. A partire da Android 12, le app con Consenti solo mentre utilizzano le autorizzazioni dell'app possono ottenere risultati di scansione Bluetooth impostando il valore dell'attributo android:usesPermissionFlags su neverForLocation . Per ulteriori dettagli, consulta L'app non ricava la posizione fisica .

Aggiornamenti del sistema operativo

In un aggiornamento del sistema operativo ad Android 10, le autorizzazioni di localizzazione dell'app si traducono in quanto segue:

  • L'attivazione diventa Consenti solo durante l'uso .
  • Off rimane disattivato ( Nega ).
  • L'accesso alla posizione preconcesso diventa la preconcessione Consenti solo durante l'uso .