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 combinata (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 richiede l'utilizzo di
requestLocationUpdatesper identificare esplicitamente il provider di geolocalizzazione preferito.L'API Google Play Services offre un modo più semplice per utilizzare la posizione in
FusedLocationProviderClient.
Molte app per auto utilizzano FLP dall'API Google Play Services anziché
LocationManager. 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 richiedere e utilizzare esplicitamente NETWORK_PROVIDER
e GPS_PROVIDER per
le posizioni precise, che utilizzano le autorizzazioni
android.permission.ACCESS_FINE_LOCATION. Su Android 12 (livello API 31) e versioni successive, FUSED_PROVIDER,
precedentemente accessibile solo tramite l'API Google Play Services, è
disponibile come fornitore di servizi di localizzazione per LocationManager. Puoi vedere un'implementazione 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, ma ha poco senso per gli sviluppatori che hanno come target gli smartphone Android, perché la disponibilità complessiva è scarsa e spesso è più lento ottenere una posizione approssimativa.
Posizione rete nel settore automobilistico
Il NETWORK_PROVIDER utilizzato sugli smartphone Android (con Google Mobile Services)
determina la posizione in base alle torri cellulari, ai punti di accesso Wi-Fi e
ai beacon Bluetooth (BT) nelle vicinanze. Di conseguenza, NETWORK_PROVIDER potrebbe richiedere una connessione dati.
Per le app per auto, i vincoli del dispositivo sono diversi. Poiché il sistema di navigazione satellitare globale (GNSS) è solitamente attivo, non vengono applicate penalità a causa dell'aumento dell'utilizzo di energia e 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é LocationManager 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 precisione).
A differenza dei dispositivi mobili, i veicoli raramente sembrano saltare da un luogo all'altro. La posizione del veicolo è nota sotto il cofano la maggior parte del tempo.
Provider di localizzazione di rete (NLP)
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 trattamento del linguaggio naturale.
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 più imprecise 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
Per le app che hanno come target dispositivi mobili e automotive che non
richiedono una precisione di qualità superiore, richiedi
android.permission.ACCESS_COARSE_LOCATION solo e torna a utilizzare
FLP quando disponibile. In alternativa, 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 la sezione Precisione
in Richiedere le autorizzazioni di accesso alla posizione.
Inoltre, queste app devono dichiarare esplicitamente la funzionalità
android.hardware.location.network come facoltativa nel proprio
manifest. Ad esempio:
<uses-feature android:name="android.hardware.location.network" android:required="false" />
Questo approccio contribuisce a ottenere una maggiore compatibilità con i dispositivi in tutti i fattori di forma e, di conseguenza, la massima disponibilità delle app senza differenze di codice per ottenere le posizioni quando necessario.