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 два раза, поэтому ваше местоположение будет указывать ваше последнее местоположение. И ваша проблема будет решена,