Perché locationmanager restituisce le vecchie correzioni di posizione con il nuovo timestamp di gettime?

Abbiamo un'applicazione che, all'azione degli utenti, cerca di get una correzione della posizione. Consente di ascoltare sia il GPS che la networking e ha una matrix di decisione basata sul tempo / accuratezza per determinare quando interrompere l'ascolto e quali correzioni restituiscono.

Abbiamo notato, a volte, un comportmento molto strano. Utilizziamo il modo classico per vedere come è la vecchia correzione:

  • Android Device Monitor non si apre - l'errore sul file di registro
  • Come portre ImageView davanti a Button in android 5?
  • Come annullare handler.postDelayed?
  • Cattura le chiavi digitate sulla tastiera virtuale android usando javascript
  • Android: Autocomplete TextView simile all'app Facebook
  • Il block delle telecamere Android tira IllegalArgumentException
  • long age = now - newLocation.getTime(); if(age >= prefs.getLocationMaxAge()){ Log.d(TAG, "location too old."); return; } 

    Ma a volte, la posizione.getTime restituito dal sistema operativo ha un'età di circa 15-20 secondi, secondo il timestama restituito, anche se possiamo dire per certo che è molto vecchio. Ad esempio, se la correzione di longitudine / latitudine è da una posizione che il ricevitore era in 30 minuti fa!

    Sembra che sia accaduto sia da Wi-Fi e da networking, ma non da GPS. Per me, questo è totalmente pazzo. Qualcun altro ha visto questo e c'è qualche modo intorno ad esso?

    Abbiamo ottenuto su un paio di telefoni diversi, la più recente è Samsung Galaxy S II .

    Aiuto sarebbe estremamente benvenuto.

    EDIT : Per essere veramente chiaro, il problema è che il callback "onlocationchanged" viene chiamato dall'OS con una posizione con un'età di timestamp di forse un paio di secondi, quando so per certo che la longitudine / latitudine nel "nuovo" la correzione è un luogo in cui il telefono non è stato a per alless 30 minuti.

    Questo rende difficile determinare in modo preciso where il porttile è …

  • Navigazione di Google Maps - utilizzo di Google Navigation in applicazione Android
  • Intento della camera che non salva foto
  • Distriggers l'icona colorStateList in NavigationView
  • Come posso modificare l'image in Gridview Runtime?
  • Build non riuscito: Errore con il progetto Android in Xamarin.Forms
  • Android Scarica Intent
  • One Solution collect form web for “Perché locationmanager restituisce le vecchie correzioni di posizione con il nuovo timestamp di gettime?”

    Sembra che sia accaduto sia da Wi-Fi e da networking, ma non da GPS

    Questo sembra giusto, perché nella triangolazione basata su cellule Wi-Fi e networking, l'esattezza è molto brutta. Usano probabilmente le posizioni in cache che risalgono a 30 minuti fa. A less che tu non abbia cambiato il tuo sito cellulare o sei trasferito in un altro edificio in modo che i nuovi AP possano essere scoperti, temo che avrai solo posizioni memorizzate nella cache. Se si desidera utilizzare nuove località utilizzare il fornitore GPS.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.