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 chiamata 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 l'accesso alla 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.

Su Android 11 (livello API 30) e versioni successive, tuttavia, la finestra di dialogo di sistema non include l'opzione Consenti sempre. Gli utenti devono invece attivare la localizzazione 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 di destinazione 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 un'interfaccia utente informativa che includa quanto segue:

  • Una spiegazione chiara del motivo per cui la funzionalità della tua app ha bisogno di accedere alla posizione in background.
  • L'etichetta visibile all'utente dell'opzione di 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 di ritorno di questo metodo è localizzato in base alla preferenza di lingua del dispositivo dell'utente.
  • Un'opzione per consentire agli utenti di rifiutare l'autorizzazione. Se gli utenti rifiutano l'accesso alla posizione in background, dovrebbero essere in grado di continuare a utilizzare la tua app.
Gli utenti possono toccare la notifica di sistema per modificare le impostazioni di accesso alla posizione per un'app.
Figura 8. Notifica che ricorda all'utente di aver concesso 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 della tua 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 posizione 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 solo l'accesso alla posizione approssimativa in primo piano, la tua app avrà accesso solo 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

Campioni

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