2015-09-11 26 views
0

我需要確保我用的位置是新鮮返回:年齡的位置從LocationServices

有沒有找出定位結果怎麼老返回由LocationServices.FusedLocationApi.getLastLocation是的一種方式?

如果沒有:如果我註冊一個位置監聽到LocationServices.FusedLocationApi.requestLocationUpdates(與setNumUpdates(1)setMaxWaitTime(0)),然後將它更新,如果位置沒有從LocationServices.FusedLocationApi.getLastLocation返回的一個變化?

回答

4

是的,有一個非常簡單的方法。您可以通過調用getTime()這樣得到一個位置固定的時間:

Location currentLocation = LocationServices.FusedLocationApi.getLastLocation(apiClient); 
long locationAge = System.currentTimeMillis() - currentLocation.getTime(); 

if (locationAge <= 60 * 1000) { // not older than 60 seconds 
    // do something with the location 
} 

的文檔建議不要使用System.currentTimeMillis的()時間比較,但我從來沒有經歷過這種方法的任何缺陷。但是,您應該考慮閱讀(短)文檔:

https://developer.android.com/reference/android/location/Location.html#getTime()