2012-08-14 44 views
1

在使用LocationManagergetLastKnownLocation()方法時,我注意到只有當我移動大約50米時,它所獲得的位置纔會改變。getLastKnownLocation僅在位置更改〜50 m時更新。爲什麼?

儘管事實上GPS的可見度很高,而且在測試它的地區,定位誤差應該在5米左右。我想知道getLastKnownLocation()中是否有任何「距離變化」限制,如果位置變化了一定的數量,它只會更新其保存的位置[很像您可以在requestLocationUpdates()上設置距離限制]。

如果是這樣,有人知道距離約束究竟是什麼嗎?

謝謝!

+0

它更好地使用LocationListener獲取位置 – rajpara 2012-08-14 07:34:22

+0

看看http://stackoverflow.com/questions/11900097/location-getspeed-update/11900757#11900757。 – Braj 2012-08-14 07:47:30

+1

如果您的電池電量完全耗盡,因爲某些程序員在谷歌決定最後一次知道的位置應該準確嗎? – Warpzit 2012-08-14 07:58:52

回答

3

getLastKnownLocation()方法將只返回最後一次GPS修復的位置 - 無論它是由您的應用程序還是第三方應用程序獲取。它不會返回您當前的位置,如果您移動大約50米,它不會改變 - 至少在沒有其他應用程序正在使用GPS時不會改變。

它應該用於給出用戶的近似位置或作爲「佔位符」,直到獲得新數據。

請參閱本這篇博客瞭解更多詳情: http://android-developers.blogspot.com/2011/06/deep-dive-into-location.html

雷託·邁耶,在Android開發團隊的一員,去年也給了a speech at Google I/O中,他談到了使用定位服務,包括getLastKnownLocation()