Когда я использую 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 раз на сервер, хотя я уже нахожусь в нескольких 100 метрах от этого местоположения.
Кто-нибудь знает, в чем может быть проблема? Если вам интересно, я мог бы также добавить код для mLocationUpdateListener, но он просто отправляет местоположение на сервер.
Изменить: местоположение всегда получается в фоновом режиме. Я мог решить эту проблему, открыв Карты Google на переднем плане. Но, конечно, это не может быть решением моей проблемы.
Изменить решение. Похоже, сервисы Play каким-то образом не работали на всех 6 тестовых устройствах Nexus 5. После перезагрузки всех устройств я больше не мог воспроизводить это странное поведение...
Редактировать 2: и снова я натыкаюсь на это поведение, и оно продолжает появляться, даже если я перезагружаю телефоны...