Android LocationManager предоставляет одно и то же местоположение несколько раз (Nexus 5)
Когда я использую LocationManager на моем телефоне, почти для всех тестовых устройств Nexus 5 LocationManager обнаруживает одно и то же местоположение пару раз каждую минуту (я слушаю местоположение каждые 60 секунд). Чтобы прояснить код, который я на самом деле использую:
mLocationManager.requestLocationUpdates(60*1000,
0,
criteria),
mLocationUpdateListener, Looper.getMainLooper());
критерии устанавливаются с сервера и определяют только желаемую точность (Criteria.ACCURACY_COARSE или Criteria.ACCURACY_FINE).
Так что для других моих тестовых устройств (Nexus 4 и Samsung S3) у меня нет проблем с менеджером местоположения. Он всегда доставляет новую позицию каждые 60 секунд. Но устройства Nexus 5, кажется, кешируют положение в какой-то момент, так что я посылаю одно и то же местоположение 5 раз на сервер, хотя я уже на расстоянии нескольких сотен метров от этого места.
Кто-нибудь знает, в чем может быть проблема? Если вам интересно, я мог бы также добавить код для mLocationUpdateListener, но он просто отправляет местоположение на сервер.
Редактировать: местоположение всегда получается в фоновом режиме. Я мог бы преодолеть эту проблему, открыв Google Maps на переднем плане. Но, конечно, это не может быть решением моей проблемы.
Редактировать решение: Похоже, что сервисы Play не работали на всех 6 тестовых устройствах Nexus 5. После перезапуска всех устройств я больше не мог воспроизводить это странное поведение...
Редактировать 2: и снова я наткнулся на это поведение, и оно продолжает появляться, хотя я перезагружаю телефоны...
1 ответ
Попробуй это
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocationUpdateListener);