Android 2.3.3 Gingerbread - не могу найти местоположение

Я использую метод getLastKnownLocation, чтобы найти позицию пользователя, но метод всегда дает мне ноль. Я тестировал метод, который я использую в разных версиях системы (например, 2.2.1, 4.0.4), и все работает отлично. На 2.3.3 я всегда получаю ноль, даже когда мне удается получить местоположение, в то время как в других версиях системы я всегда получаю местоположение, ноль не появлялся ни разу. Это происходит в каждом тестовом состоянии, которое я готовлю, и на реальных устройствах, и на эмуляторах.

Я знаю, как работает getLastKnownLocation, я проверяю, включен ли поставщик, я запрашиваю обновления местоположения и использую соответствующие разрешения в манифесте.

Я думаю, что что-то не так с этой версией системы. Кто-нибудь способен подтвердить мои мысли по теме? Есть ли ошибка в получении местоположения на Android 2.3.3?

2 ответа

Решение

getLastKnownLocation может вернуться null если нет предыдущего местоположения. Если это так, вам нужно дождаться значения в onLocationChanged со слушателем вы зарегистрировались.

Обратите внимание, что GPS не работает в больших городах, внутри зданий и т. Д. Также некоторые устройства имеют дополнительные механизмы определения местоположения, такие как A-GPS. Таким образом, я думаю, что это также может быть проблема конкретного устройства.

Это очень, очень маловероятно, это проблема с 2.3.3

Я столкнулся с той же проблемой, когда разрабатывал приложение Map. После долгих попыток я нашел решение.

location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            locManager.requestLocationUpdates(provider,0, 0, locationListener);
            location = locManager.getLastKnownLocation(provider);
            locManager.requestLocationUpdates(provider,0, 0, locationListener);

Вызовите getLastKnownLocation и requestLocationUpdates два раза, поэтому ваше местоположение будет указывать ваше последнее местоположение. И ваша проблема будет решена,

Другие вопросы по тегам