2011-10-26 50 views
1

啓用GPS後,GPS準備就緒需要一段時間。因此,使用此代碼可能會得到一個過時的位置: location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 我無法使用過時的位置。我怎樣才能獲得我需要的位置?如何獲取未過期的位置?

這裏有一個類似的問題: Android: getLastKnownLocation out-of-date - how to force location refresh?

從它,我可以用LocationListener的獲得更新的位置,這應該是不會過時的。這是正確的。但我該如何處理這種情況:

我已經啓用GPS,然後啓動我的應用程序。如果我呆在一個地方而不移動,那麼onLocationChanged()將不會被調用。所以我不能用這個方法來判斷getLastKnownLocation()的返回值是不是過時的?

任何想法?

回答

1

如何獲取未過期的位置?

你叫requestLocationUpdates()爲1000毫秒minTime,在onLocationChanged()Location,你叫getAccuracy()。如果準確度可以接受,請致電removeUpdates()

所以我不能用這個方法來判斷getLastKnownLocation()的返回值是否不出來過期

我認爲它會返回一個包含了time stamp Location對象。您可以爲現在和位置之間的時間差設置容差getTime()

+0

我會嘗試時間戳。 – flypen

1

每個Location對象都有一個getTime()方法,該方法返回修復的時間。您可以使用它來確定修復程序的年齡。

+0

對時間戳看起來非常有幫助。謝謝。 – flypen