0

使用する場所が新鮮であることを確認する必要があります。

によって返された場所の結果が何歳であるかを調べる方法LocationServices.FusedLocationApi.getLastLocationはありますか?

そうでない場合: ロケーションリスナーをLocationServices.FusedLocationApi.requestLocationUpdates(setNumUpdates(1)および でsetMaxWaitTime(0)) に登録すると、ロケーションが返されたものから変更されていない場合、更新されLocationServices.FusedLocationApi.getLastLocationますか?

4

2 に答える 2

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()

于 2015-09-11T11:14:01.867 に答える