Почему locationmanager возвращает старые исправления местоположения с новым gettime-timestamp? - PullRequest
6 голосов
/ 04 октября 2011

У нас есть приложение, которое при действии пользователя пытается определить местоположение.Он слушает как по GPS, так и по сети, и имеет матрицу решений, основанную на времени / точности, чтобы определить, когда прекратить прослушивание и что исправить, чтобы вернуться.

Мы иногда замечали очень странное поведение.Мы используем классический способ узнать, сколько лет исправлению, например так:

long age = now - newLocation.getTime();
if(age >= prefs.getLocationMaxAge()){
    Log.d(TAG, "location too old.");
    return;
}

Но иногда возвращаемое из операционной системы location.getTime имеет возраст, возможно, 15-20 секунд, в соответствии с возвращаемым значением.отметка времени, хотя мы можем точно сказать, что она очень старая.Например, если фиксирование долготы / широты происходит из положения, в котором телефон находился 30 минут назад!

Похоже, что это происходит как по Wi-Fi, так и по сети, но не по GPS.Для меня это абсолютно безумно.Кто-нибудь еще видел это и есть ли способ обойти это?

Мы получили его на нескольких разных телефонах, самый последний из которых - Samsung Galaxy S II .

Помощь была бы крайне желательна.

РЕДАКТИРОВАТЬ : Чтобы быть действительно ясным, проблема в том, что обратный вызов "onlocationchanged" вызывается ОС с местоположением с возрастом метки времени, возможно,пару секунд, когда я точно знаю, что долгота / широта в «новом» исправлении - это место, где телефон не находился в течение как минимум 30 минут.

Это затрудняетточно определить, где телефон это ...

1 Ответ

0 голосов
/ 04 октября 2011

Кажется, что это происходит как от Wi-Fi, так и от сети, но не от GPS

Это кажется справедливым, потому что в триангуляции Wi-Fi и сети на основе сотовой сети точностьочень плохо.Они, вероятно, используют кэшированные места, которые датируются 30 минут назад.Если вы не изменили свой сотовый сайт или не переехали в другое здание, чтобы можно было обнаружить новые AP , я боюсь, что вы получите только кэшированные местоположения.Если вы хотите свежие местоположения, используйте провайдера GPS.

...