Ottenere la posizione approssimativa

Per rispettare la privacy degli utenti, gli sviluppatori di app sono invitati a richiedere solo autorizzazioni di geolocalizzazione approssimativa. Le app che richiedono una posizione approssimativa in genere utilizzano la posizione di rete (FLP) perché è veloce e consuma meno energia.

Rispetto ai dispositivi mobili basati su Android, la posizione di rete nelle app per auto può essere più difficile da rilevare. Puoi utilizzare due API Android:

  • L'API LocationManager o LM richiede di identificare esplicitamente il provider di servizi di localizzazione preferito.

  • L'API Google Play Services offre un modo più semplice per lavorare con la posizione grazie all'introduzione del Fused Location Provider (FLP).

Molte app per auto utilizzano FLP dall'API Google Play Services (GPS) anziché LM. FLP seleziona il fornitore di servizi di localizzazione ottimale in base ai criteri e alle norme di richiesta di localizzazione (potenza e precisione) necessari al veicolo.

In alternativa, puoi scegliere di richiedere e utilizzare esplicitamente NETWORK_PROVIDER in LM, nonché GPS_PROVIDER per le posizioni precise, che utilizza le autorizzazioni android.permission.ACCESS_FINE_LOCATION. Nell'API 31, FUSED_PROVIDER, precedentemente accessibile solo tramite l'API GPS, ora è disponibile come fornitore di servizi di localizzazione per LM. Puoi visualizzare un'implementazione più semplice di FLP in FusedLocationProvider.java.

Sebbene sia possibile utilizzare GPS_PROVIDER solo con diritti di autorizzazione approssimativi, il framework riduce artificialmente la precisione per allinearsi alle aspettative, il che non ha molto senso per gli sviluppatori che hanno come target gli smartphone Android perché la disponibilità complessiva è scarsa e spesso più lenta per ottenere una posizione approssimativa.

Ubicazione rete nel settore automobilistico

Il NETWORK_PROVIDER utilizzato sugli smartphone Android (con Google Mobile Services) è cambiato: ora, oltre a determinare la posizione in base alle torri cellulari nelle vicinanze, utilizza anche punti di accesso Wi-Fi o persino beacon Bluetooth (BT). L'utilizzo di NETWORK_PROVIDER potrebbe richiedere una connessione dati.

Per le app per auto, i vincoli del dispositivo sono diversi. Poiché il GNSS è normalmente attivo, non vengono applicate penalità a causa dell'aumento dell'utilizzo di energia e batteria. Di conseguenza, il tempo di attività dell'IVI non viene compromesso. Ci impegniamo a ridurre al minimo i dati scambiati con i nostri server.

Molte app utilizzano quindi FLP dall'API Play anziché LM direttamente, in quanto FLP esegue automaticamente l'operazione intelligente utilizzando il fornitore di servizi di localizzazione più adatto a soddisfare i criteri/le norme per le richieste di localizzazione (ovvero potenza e precisione) in background.

A differenza dei dispositivi mobili, i veicoli raramente sembrano saltare da un luogo all'altro. La posizione del veicolo è nota sotto il cofano per la maggior parte del tempo.

Provider di localizzazione della rete

La maggior parte dei veicoli non implementa le API di telefonia richieste per ottenere le informazioni necessarie su un ID cella (e sull'intensità del segnale). Di conseguenza, e poiché riduciamo al minimo l'utilizzo dei dati, non viene fornita alcuna implementazione funzionale aggiuntiva del NLP.

Fornitore di servizi di localizzazione

L'FLP mobile, oltre a utilizzare in modo intelligente i provider di rete e GPS in base alle esigenze, combina le informazioni di altri sensori per migliorare ulteriormente la qualità delle posizioni. L'attuale implementazione di FLP di Automotive, d'altra parte, sfrutta le ipotesi sopra menzionate e utilizza GPS_PROVIDER come origine sottostante in ogni momento. Modifica le posizioni del GNSS, aggiungendo alcuni errori per renderle meno precise quando necessario. Ad esempio, quando vengono fornite posizioni approssimative a un cliente.

Pertanto, in alcuni rari casi, potrebbe essere necessario più tempo del solito prima che la prima posizione sia disponibile. Ad esempio, la prima volta che viene utilizzato un veicolo o, per essere più precisi, il suo sottosistema di localizzazione o dopo essere stato trainato.

Progettare app per il targeting di utilizzi su dispositivi mobili e automotive

Consigliamo alle app che hanno come target dispositivi mobili e automotive che non richiedono una qualità superiore della richiesta di precisione android.permission.ACCESS_COARSE_LOCATION solo e di ripiegare sull'utilizzo di FLP quando disponibile. In alternativa, come ultima risorsa, utilizza GPS_PROVIDER direttamente con le stesse autorizzazioni. Il framework riduce la precisione della posizione GNSS sottostante per allinearsi alle aspettative dell'API. Per saperne di più, consulta Accuratezza.

Inoltre, queste app devono dichiarare esplicitamente la funzionalità android.hardware.location.network facoltativa nel manifest. Ad esempio:

<uses-feature android:name="android.hardware.location.network" android:required="false" />

Questo approccio garantisce la massima compatibilità con i dispositivi in tutti i verticali e, pertanto, la massima disponibilità delle app senza differenze di codice per ottenere le posizioni quando necessario.