Метод обновления местоположения Android GPS не работает в режиме "Создать карту"
У меня проблема с LocationManager
учебный класс:
Я хочу обновить свое текущее местоположение в onCreate()
класса, расширенного от MapActivity
:
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
MyLocationListener lcs = new MyLocationListener();
lcs.onLocationChanged(lm.getLastKnownLocation(LocationManager.GPS_PROVIDER));
в то время как getLastKnownLocation()
возвращает местоположение, но неточно, я хочу позвонить LocationManager.requestLocationUpdates()
который возвращается null
в onCreate()
:
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
MyLocationListener lcs=new MyLocationListener();
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, lcs);
Может кто-нибудь сказать мне, как я смогу получить мое текущее местоположение в моем onCreate()
?
3 ответа
Спасибо, ребята, что откликнулись и дали очень разумное предложение, но, к сожалению, это не сработало для меня.
Я достиг своей цели, реализовав небольшую задержку, и все стало работать нормально, и моя основная цель - найти местоположение в методе Oncreate. Он пришел к выводу, что метод OnCreate вызывается первым, а потом OnResume, если вы хотите получить текущее местоположение с помощью ранжирования карты, вам придется сначала подождать, пока карта будет отображаться, а затем вызвать код обновления местоположения.
LocationManager
только общается с вашим кодом, используя прилагаемый слушатель. Когда доступно новое исправление местоположения, onLocationChanged()
будет вызван в lcs
экземпляр MyLocationListener
класс ваш создал.
Вы не хотите рисковать принудительным закрытием приложения во время ожидания первого исправления местоположения в onCreate()
,
Лучшей практикой является регистрация вашего LocationListener
в onResume()
а также снова отмените регистрацию в onPause()
с помощью LocationManager.removeUpdates(LocationListener)
, Ваши пользователи будут благодарны вам за то, что вы не разряжаете свою батарею, когда ваше приложение не на переднем плане:)
Вот учебник http://www.androidcompetencycenter.com/?s=GPS
или попробуйте это http://www.firstdroid.com/2010/04/29/android-development-using-gps-to-get-current-location-2/