Richiedere la posizione in background

Questa pagina illustra quanto segue:

  • Come richiedere l'accesso alla posizione in background.
  • Come gestire la richiesta in base alla versione dell'SDK target della tua app.
  • In che modo le preferenze dell'utente per la posizione approssimativa influiscono sul modo in cui la tua app ottiene la posizione in background.
Figura 7. La pagina Impostazioni include un'opzione denominata Consenti sempre, che concede l'accesso alla posizione in background.

I contenuti della finestra di dialogo delle autorizzazioni dipendono dalla versione dell'SDK target

Quando una funzionalità della tua app richiede la posizione in background su un dispositivo con Android 10 (livello API 29), la finestra di dialogo delle autorizzazioni di sistema include un'opzione denominata Consenti sempre. Se l'utente seleziona questa opzione, la funzionalità della tua app ottiene l'accesso alla posizione in background.

Tuttavia, su Android 11 (livello API 30) e versioni successive, la finestra di dialogo di sistema non include l'opzione Consenti sempre. Gli utenti devono invece attivare la posizione in background in una pagina delle impostazioni, come mostrato nella Figura 7.

Puoi aiutare gli utenti ad accedere a questa pagina delle impostazioni seguendo le best practice quando richiedi l'autorizzazione di accesso alla posizione in background. La procedura per concedere l'autorizzazione dipende dalla versione dell'SDK target dell'app.

L'app ha come target Android 11 o versioni successive

Se alla tua app non è stata concessa l'autorizzazione ACCESS_BACKGROUND_LOCATION e shouldShowRequestPermissionRationale() restituisce true, mostra agli utenti una UI informativa che includa quanto segue:

  • Una spiegazione chiara del motivo per cui la funzionalità della tua app richiede l'accesso alla posizione in background.
  • L'etichetta visibile all'utente dell'opzione delle impostazioni che concede l'accesso alla posizione in background (ad esempio, Consenti sempre nella figura 7). Puoi chiamare getBackgroundPermissionOptionLabel() per ottenere questa etichetta. Il valore restituito da questo metodo è localizzato in base alle preferenze sulla lingua del dispositivo dell'utente.
  • Un'opzione che consente agli utenti di negare l'autorizzazione. Se gli utenti rifiutano l'accesso alla posizione in background, devono poter continuare a utilizzare la tua app.
Gli utenti possono toccare la notifica di sistema per modificare le impostazioni di geolocalizzazione di un'app
Figura 8. Notifica che ricorda all'utente che ha concesso l'accesso alla posizione in background a un'app.

L'app ha come target Android 10 o versioni precedenti

Quando una funzionalità della tua app richiede l'accesso alla posizione in background, gli utenti visualizzano una finestra di dialogo di sistema. Questa finestra di dialogo include un'opzione per accedere alle opzioni di autorizzazione di accesso alla posizione dell'app in una pagina delle impostazioni.

Se la tua app segue già le best practice per la richiesta delle autorizzazioni di accesso alla posizione, non devi apportare modifiche per supportare questo comportamento.

L'utente può influire sulla precisione della localizzazione in background

Se l'utente richiede la posizione approssimativa, le sue scelte nella finestra di dialogo delle autorizzazioni di accesso alla posizione si applicano anche alla posizione in background. In altre parole, se l'utente concede alla tua app l'autorizzazione ACCESS_BACKGROUND_LOCATION, ma concede l'accesso alla posizione approssimativa solo in primo piano, la tua app ha accesso alla posizione approssimativa anche in background.

Risorse aggiuntive

Per ulteriori informazioni sulle autorizzazioni di accesso alla posizione in Android, consulta i seguenti materiali:

Codelab

Video

Esempi

  • App di esempio per dimostrare l'utilizzo delle autorizzazioni di accesso alla posizione.