2012-03-29 9 views
0

Я регистрация обновлений местоположения:Менеджер местоположений getLastKnownLocation() кэши последнее исправление?

public void onResume() { 
    LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    List<String> providers = lm.getProviders(true); 
    for (String it : providers) { 
     lm.requestLocationUpdates(it, 0, 0, myListener); 
    } 
} 

Теперь будет любое новые исправления местоположения, полученные в кэше в провайдерах? Другими словами, если GPS приемник получил новый фикс 1 секунду назад, называя следующее:

Location loc = lm.getProvider("gps").getLastKnownLocation("gps"); 

должен дать мне ответ, что последнего места, не так ли? Просто интересно, существует ли какая-либо политика для провайдера, где он может не вернуть свое последнее исправление (т. Е. Получает исправление, но внутренняя реализация не кэширует его как последнее известное местоположение по какой-либо причине, или есть некоторый тайм-аут до этого получает подают как последний известный),

Благодарности

ответ

1

Если проверить источник LocationManagerService.java вы можете увидеть последнее известное место для провайдера обновляется, если провайдер местоположения включен, так что ответ Да.

+1

PS: Вы можете использовать loc.getTime(), чтобы получить время UTC этого исправления. – biegleux

Смежные вопросы