我的應用使用LocationListener來跟蹤當前位置。只要GPS提供商提供定期修復,這很好。不過,我希望我的應用能夠提醒用戶,如果位置不再可靠,因爲修復不再是最新的。因此,我使用timeCheckHandler每隔幾秒鐘調用一次getLastKnownLocation。Android問題找出最近的最新GPS定位是多少
我的問題是,即使頻繁接收到準確的修復,通過將getTime()返回給getLastKnownLocation返回的位置返回的時間通常比System.currentTimeMillis()返回的當前時間還要早20秒。
我已經通過將代碼添加到onLocationChanged(arg0)來記錄修復時間(arg0.getTime())和當前時間(System.currentTimeMillis())來進一步調查問題。我再次看到約20秒的差異。
代碼當前如下:
public void onLocationChanged(Location arg0) {
mapview.handleLocationChanged(mapview, arg0.getLatitude(), arg0.getLongitude(), arg0.getBearing(), arg0.getAccuracy(), "GPS fix");
addDebugNote("Fix received at time: "+Long.toString(arg0.getTime()/1000)+" Now: "+Long.toString((System.currentTimeMillis())/1000));
}
和典型輸出到我的調試文件讀取:
Fix received at time: 1292091908 Now: 1292091928
爲什麼我應該看到修復的時間與當前系統時間之間的差異?
我必須接受約20秒的差異是否正常嗎?
我有同樣的問題,我補充說:'arg0.setTime(System。currentTimeMillis());'作爲'onLocationChanged(Location arg0)'方法的第一行來「糾正」時間戳。我不確定這是否會在後面產生任何副作用 – ApollonDigital 2015-04-08 16:19:13