2011-05-10 11 views
8

getBestKnownLocation Restituisce una posizione che indica i dati dall'ultima correzione di posizione nota ottenuta dal provider specificato. Questo può essere fatto senza avviare il provider. Tieni presente che questa posizione potrebbe non essere aggiornata, ad esempio se il dispositivo è stato spento e spostato in un'altra posizione.getLastKnownLocation() Android, quando l'ultima posizione nota viene aggiornata?

quando l'ultima posizione nota è stata aggiornata in Android? è aggiornato se quando c'è un'applicazione che ascolta il provider di localizzazione, in caso affermativo, se non ci sono applicazioni che chiedono la posizione e quindi hai chiesto LastKnownLocation()?

+0

cosa stai cercando di ottenere? si prega di formattare la domanda – Hades

+0

voglio vedere se getLastKnownLocation è affidabile (quando è aggiornato?) per ottenere la posizione dell'utente. – Jimmy

risposta

5

I thinki LastKnownLocation() si sta aggiornando quando alcuni programmi nel telefono utilizzano questa funzione requestLocationUpdates.

+0

Dalle mie osservazioni, penso che tu abbia ragione. Ho notato che quando la mia app effettua chiamate di rete e controllo l'ultima volta, è stata aggiornata solo pochi secondi fa. –

5

Si prega di vedere Start location strategy

ho fatto alcune indagini: ho acceso il GPS e ho aspettato per ottenere una correzione. Quindi ho spento il GPS e ho guidato per 50 km (31 miglia). Quindi ho usato il codice di A Deep Dive Into Location per ottenere tutte le getLastKnownLocation. Ho provato due volte, prima con il GPS spento e la seconda con il GPS acceso, ma senza una correzione:

1) con il GPS spento ho ottenuto - Provider: rete, corretta posizione con una precisione 680m - Provider: passivo (mProvider = rete), stessa posizione come sopra, stessa ora sopra - Provider: gps, posizione nulla

Così ho imparato che quando il GPS è spento non si ottiene getLastKnownLocation dal fornitore di posizione GPS.

2) con il GPS acceso ho avuto - Provider: rete, corretta posizione con una precisione 652m - Provider: passivo (mProvider = rete), stessa posizione come sopra, nello stesso tempo come sopra - Provider: gps, location come era 2 ore prima con precisione 12m, il tempo era anche 2h prima

Qui ho imparato che i vecchi messaggi non sono invalidati, anche se è ovvio che si sbagliano.

Quindi per sommarlo: quando un provider è attivo, memorizza l'ultima posizione ricevuta recuperabile tramite getLastKnownLocation. Se il provider è disattivato, non si ottiene nemmeno getLastKnownLocation. Si prega di notare che ho provato questo con il provider GPS, altri fornitori potrebbero reagire in un modo diverso.

Problemi correlati