Я получаю свое последнее известное местоположение, но не так, как долго это было с тех пор, как мое местоположение было в последний раз обновлено. Как узнать, сколько времени прошло с момента последнего обновления местоположения?Как давно было зарегистрировано последнее известное местоположение?
LocationManager locationManager
= (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria c = new Criteria();
c.setAccuracy(Criteria.ACCURACY_FINE);
c.setAccuracy(Criteria.ACCURACY_COARSE);
c.setAltitudeRequired(false);
c.setBearingRequired(false);
c.setCostAllowed(true);
c.setPowerRequirement(Criteria.POWER_HIGH);
String provider = locationManager.getBestProvider(c, true);
Location location = locationManager.getLastKnownLocation(provider);
Как насчет подписки на обновления местоположения и измерения разницы во времени между полученными обновлениями? Когда вы получаете обновление местоположения, экземпляр Location позволяет вам получить время обновления через getTime() (будьте осторожны, но это в UTC). – AgentKnopf
['location.getTime();'] (http://developer.android.com/reference/android/location/Location.html#getTime%28%29) говорит о ['getElapsedRealtimeNanos()'] (http: //developer.android.com/reference/android/location/Location.html#getElapsedRealtimeNanos%28%29), чтобы рассчитать возраст исправления и сравнить исправления местоположения. [Пример] (https://code.google.com/p/android-protips-location/source/browse/trunk/src/com/radioactiveyak/location_best_practices/utils/GingerbreadLastLocationFinder.java) в [блоге] (http : //android-developers.blogspot.com/2011/06/deep-dive-into-location.html) использует 'getTime()'. – kush
getElapsedRealtimeNanos() - рекомендуемый подход в будущем, но доступен только в API 17 (4.2) и выше, поэтому getTime - это единственное, что нужно использовать на момент написания ... – JamesSugrue