2014-05-28 1 views
0

Когда я использую LocationManager на своем телефоне, почти для всех тестовых устройств Nexus 5 LocationManager обнаруживает одно и то же местоположение пару раз каждую минуту (я слушаю для места каждые 60 секунд). Чтобы очистить код, я на самом деле с помощью:Android LocationManager поставляет то же местоположение несколько раз (Nexus 5)

mLocationManager.requestLocationUpdates(60*1000, 
      0, 
      criteria), 
      mLocationUpdateListener, Looper.getMainLooper()); 

критерии устанавливается с сервера и только определяет требуемую точность (Criteria.ACCURACY_COARSE или Criteria.ACCURACY_FINE).

Итак, для других моих тестовых устройств (Nexus 4 и Samsung S3) у меня нет проблем с менеджером местоположения. Он всегда обеспечивает новую позицию каждые 60 секунд. Но устройства Nexus 5, похоже, кэшируют позицию в какой-то момент, так что я отправляю то же самое местоположение 5 раз на сервер, хотя я уже на расстоянии в 100 метров от этого места.

Кто-нибудь знает, что может быть проблемой? Если вам интересно, я мог бы также добавить код для mLocationUpdateListener, но он просто отправляет местоположение на сервер.

Редактировать: местоположение всегда получается в фоновом режиме. Я мог бы преодолеть эту проблему, открыв Карты Google на переднем плане. Но, конечно, это не может быть решением моей проблемы.

Редактировать решение: Похоже, что Play Services не работает на всех 6 тестовых устройствах Nexus 5. После перезагрузки все устройства, я не мог воспроизвести это странное поведение уже ...

Edit 2: и снова я натыкаюсь на такое поведение, и он продолжает появляться, даже если я перезагрузить телефон ...

ответ

0

попробуйте это один

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocationUpdateListener);

+0

Эй Рамки, спасибо за ваш ответ. Я знаю, что я мог бы использовать GPS_PROVIDER или NETWORK_PROVIDER напрямую, но я выбрал этот подход, потому что я хочу использовать поставщика фьюжн из Google. Какой провайдер обеспечивает местоположение, в значительной степени не важно, но в помещении GPS не может получить исправление, а на улице Сеть иногда просто не работает. Вот почему я решил использовать поставщика фьюжн. –

+0

В Nexus 5 включить службу определения местоположения. В противном случае вы получите только последнее известное местоположение. –

+0

Вы имеете в виду в настройках? Это включено в High Accuracy (так же, как и на моем Nexus 4, который не имеет этой конкретной ошибки) –