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.
Puoi invece 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 l'accuratezza per allinearsi alle aspettative, il che
ha poco 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.
Posizione 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 i punti di accesso Wi-Fi o persino i 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 del consumo di energia e dell'utilizzo della batteria. Di conseguenza, l'uptime 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 provider di servizi di localizzazione più adatto a soddisfare i criteri/le norme per le richieste di localizzazione (ovvero potenza e accuratezza) 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 posizione di 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.
Fused Location Provider
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 le posizioni approssimative vengono fornite 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 file 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 settori verticali e, pertanto, la massima disponibilità delle app senza differenze di codice per ottenere le posizioni quando necessario.