In che modo Android ottiene la posizione approssimativa?


15

Ho letto che Android (e sistemi di funzionamento simili, ad esempio iOS) ottengono l'attuale posizione approssimativa utilizzando la triangolazione della torre WiFi o GSM. Ho avuto l'idea di base ma ho domande sui dettagli.

  1. Android utilizza normalmente entrambi i metodi o preferisce uno e ricade sull'altro?
  2. Comunica con un server per ottenere la posizione tramite WiFi? (ad es. invio dei SID del WiFis a un servizio web)
  3. Comunica con il Vettore per ottenere la posizione tramite le torri GSM o questo viene fatto sul dispositivo?

Risposte:


8

Spetta davvero allo sviluppatore sapere come implementare il servizio di localizzazione. La descrizione completa è disponibile qui:

http://developer.android.com/guide/topics/location/obtaining-user-location.html

Il grafico di 1/3 in fondo alla pagina è abbastanza utile per vedere cosa potrebbe fare un'app tipica, ma, di nuovo, dipende completamente dallo sviluppatore dell'app. I tipi di servizi di localizzazione sono:

  • Correzione cache
  • Cell-ID
  • Wi-Fi
  • GPS
  • Posizione simulata

Se l'app richiede l'autorizzazione solo per la posizione approssimativa, non utilizzerà il GPS per determinare la posizione.

Per rispondere alle tue domande ...

  1. Spetta al singolo sviluppatore dell'app, ma nella maggior parte dei casi la sequenza sarà in cache Fix, Cell-ID, Wifi, GPS, in questo ordine.
  2. Sì, dopo aver acquisito gli ID tower o gli SSID dei segnali WiFi, i dati vengono trasmessi a Google per determinare una posizione approssimativa.
  3. No, Google ha fatto qualcosa di veramente intelligente qui. Google ha il proprio database di posizioni della torre cellulare e non richiede un'interazione con il corriere per determinare la posizione della torre.

Questo articolo contiene alcuni dettagli http://franciscokattan.com/2010/02/06/dynamic-cell-id-clever-way-to-block-google-but-will-it-backfire/

La versione breve è che, quando si utilizza un'app come Google Maps, l'app invierà nuovamente le informazioni sull'ID cella insieme alla correzione GPS corrente. In questo modo, Google ottiene un ottimo campionamento della potenza del segnale in varie posizioni ed è in grado di costruire un database molto ricco.


Mi piace molto la tua risposta, ma non sono sicuro che il tuo diritto nella parte "dipende totalmente dallo sviluppatore". Per quanto ne so, lo sviluppatore può solo decidere di ottenere l'ammenda o la posizione approssimativa. In altre parole, può utilizzare LocationManager.NETWORK_PROVIDER e / o LocationManager.GPS_PROVIDER per ottenere la posizione. Penso che non riesca a decidere o addirittura vedere, se viene utilizzato Wifi o GSM, giusto?
Tim Büthe

Nel caso più comune, lo sviluppatore non si preoccuperà se i dati provengono da WiFi o Cell-ID, ma lo sviluppatore potrebbe porre delle restrizioni per consentire all'app di funzionare solo quando il WiFi è disabilitato o GPRS / GSM è disabilitato. Ho preso la tua domanda per dire: "Esiste una sequenza standard seguita da tutte le app" e la risposta è no. Tuttavia, con particolare riguardo alla differenza tra WiFi e Cell-ID, lo sviluppatore dell'app ha una capacità limitata di richiedere specificamente un tipo di servizio di localizzazione.
JadeMason,

1
conosci un modo per inviare la posizione degli hotspot Wi-Fi al loro database in modo da avere una triangolazione migliore nel mio quartiere / al chiuso? Ho aperto una discussione per quella mia questione: android.stackexchange.com/questions/4715/…
Özgür

3

Molto di questo è specifico del vettore e io non sono uno sviluppatore, ma ecco cosa potrei mettere insieme dalle interwebs e dai corsi di formazione che ho avuto nelle indagini sulla criminalità elettronica:

  1. Sì, ma dipende dalle specifiche priorità LBS delle app che sono impostate dallo sviluppatore e possono essere basate sulla precisione del corso corrente, i livelli di potenza, le priorità predefinite ...
  2. Sì. I vettori dispongono di DB di posizione della stazione base Wifi proprietari.
  3. Non posso parlare specificamente con Android, ma in genere si tratta di un tipo di operatore e di rete (CDMA o GSM). I telefoni sono in grado di entrambi, ma almeno qualche anno fa hanno fatto questo lavoro sul portatile a causa dei vincoli di larghezza di banda di farlo ota.


0

Il telefono sa quali sono le torri più vicine. Esiste un database di provider per ogni paese in cui si trova l'ID della torre sulla mappa. Questo database potrebbe essere abbastanza piccolo da essere preinstallato dal provider o fornito via etere. Come un telefono Android ottiene questi dati non lo so.


-1

Ho risposte leggermente diverse per # 3: il dispositivo potrebbe essere utilizzato se si desidera utilizzare la triangolazione, ma è necessario utilizzare il corriere se si desidera abbinare l'ID cella e la localizzazione della torre gsm (o cdma).


ma è un'opzione che può essere determinata da uno sviluppatore di app o anche da un utente finale o è qualcosa che è determinato dal corriere?
Matt,

È obbligatorio, se si desidera utilizzare questo modo per localizzare un dispositivo. L'uso della triangolazione o di un altro metodo ti consente di sapere dove ti trovi rispetto alla posizione dell'antenna. Ma se non conosci il lat / long dell'antenna, non sarai in grado di ottenere la tua posizione su una mappa. A casa sono chiaro :)
Rob,

@Rob Ma non è necessario il corriere per trovare la posizione della torre. Ogni torre trasmette un ID univoco, chiunque può prenderlo in modo indipendente e mapparlo, senza interazione con l'operatore. Google lo fa da un po 'di tempo per torri cellulari e punti di accesso WiFi. L'auto di Google Streetview raccoglie le informazioni mentre viaggia e gli utenti di Google Maps su varie piattaforme inviano anche dati anonimi che corrispondono a correzioni GPS con ID antenna e wifi e forza. Questo è simile al modo in cui Google raccoglie molti dei loro dati sul traffico nelle città, aggregano velocità e posizioni da molti utenti di Maps.
GAThrawn,

Sei sicuro ? Sembra sorprendente Ad esempio, in Germania (e altri paesi in Europa), Google è stato citato in giudizio per la raccolta di informazioni Wi-Fi, quindi sembra che non abbiano utilizzato questa risorsa. Per il database GSM, se Google ne possiede uno, dovrebbe essere accessibile e non ne ho mai sentito parlare.
Rob,

1
@Rob googlemobile.blogspot.com/2008/06/… "Il telefono conosce l'ID del telefono cellulare che sta attualmente utilizzando. Se il telefono dispone di GPS, l'applicazione Mappe sul telefono invia le coordinate GPS insieme all'ID cellulare a il server di localizzazione di Google ". non riesco a trovare il link in questo momento ma poco fa hanno annunciato che l'app Blackberry Google Maps stava rimandando il SSID WiFi nelle vicinanze e la forza per lo stesso motivo. Questo non è lo stesso "errore" di programmazione nel software Streetview su cui sono stati citati in giudizio che ha catturato più dati WiFi di quanto non fosse previsto.
GAThrawn
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.