Utilizzo della posizione in background

Android 14 (Android U) ha introdotto nuove limitazioni per le app che accedono alla posizione dell'utente in background. Per mitigare questi cambiamenti, l'SDK di navigazione è stato aggiornato nella versione 5.3.2 al fine di gestire meglio l'accesso alla posizione in background. Ti consigliamo inoltre di aggiornare l'implementazione per assicurarti che la tua app continui ad avere accesso ai dati sulla posizione più precisi.

In che modo le modifiche in Android 14 influiscono sull'SDK di navigazione

Quando richiami startGuidance() nella tua app, il servizio in primo piano inizia a mostrare per gli utenti le notifiche per la navigazione passo passo. La navigazione passo passo dipende dalla possibilità di accedere alla posizione dell'utente per aggiornare il percorso e mostrare le indicazioni visive e audio corrette. A partire da Android 14, per accedere alla posizione esatta dell'utente in background è necessaria l'autorizzazione dell'utente. Per impostazione predefinita, se un'app non dispone dell'autorizzazione dell'utente per l'accesso alla posizione in background e tenta di avviare un servizio in primo piano per gli aggiornamenti della posizione, il sistema visualizza un SecurityException, che causa l'arresto anomalo dell'app.

In che modo l'SDK di navigazione riduce il problema

A partire dalla versione 5.3.2, l'SDK di navigazione gestisce questo SecurityException senza influire sull'app, consentendo la navigazione in esecuzione in background. Inoltre, l'SDK di navigazione include l'autorizzazione ACCESS_BACKGROUND_LOCATION nel relativo AndroidManifest. In questo modo, la tua app non deve dichiarare l'autorizzazione stessa, perché verrà gestita dall'unione di Gradle. Tuttavia, se l'utente non riceve una notifica prima che l'app passi in background, l'SDK di navigazione si baserà sul sistema per fornire gli aggiornamenti sulla posizione. Questi aggiornamenti di sistema potrebbero non essere frequenti o precisi e generare un'esperienza di navigazione non ottimale. Per questo motivo, consigliamo di chiedere agli utenti anche l'accesso alla posizione in background.

Cosa possono fare gli sviluppatori di app per migliorare la precisione della geolocalizzazione per la navigazione

Per migliorare la precisione dell'indicatore di posizione utilizzato dall'SDK di navigazione, aggiorna l'app per richiedere agli utenti l'accesso alla posizione in background. Il prompt deve spiegare agli utenti come la concessione dell'autorizzazione migliorerà la precisione della geolocalizzazione e l'esperienza di navigazione quando l'app viene eseguita in background.

finestra di dialogo
di autorizzazione di esempio

Per maggiori informazioni su come richiedere agli utenti l'accesso alla posizione, consulta l'articolo Richiedere autorizzazioni di accesso alla posizione | Sensori e posizione | Sviluppatori Android.