Как узнать долготу, широту телефона в Android? - PullRequest
1 голос
/ 15 февраля 2010

Я прочитал несколько уроков онлайн и обнаружил, что LocationManager делает это. Это код, который я нашел в Интернете. Тем не менее, я не понимаю. Почему я не могу просто получить длинный / лат? Зачем проходить через все "перемены" местоположения вещей ...

lm=(LocationManager)this.getSystemService(LOCATION_SERVICE);  
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10, 10, new LocationListener(){

        @Override
        public void onLocationChanged(Location location) {                          
             Log.d("a","onLocationChanged: lat="+location.getLatitude());
             Log.d("a","onLocationChanged: lat="+location.getLongitude());                 
        }

        @Override
        public void onProviderDisabled(String provider) {
             Log.d("a","onProviderDisabled: " +provider);  
        }

        @Override
        public void onProviderEnabled(String provider) {
             Log.d("a","onProviderEnabled: " +provider);
        }

        @Override
        public void onStatusChanged(String provider, int status,Bundle extras) {
             Log.d("a","onStatusChanged: " +provider + status);   
        }

    }); 

Кстати, этот код не работает. Когда я запускаю его по таймеру ... ничего не происходит. Ничего не регистрируется. Я просто хочу широту долготы!

1 Ответ

2 голосов
/ 15 февраля 2010

LocationManager может вернуть последнее известное местоположение, но это не очень точно, поэтому вы должны запросить обновления местоположения и дождаться первого. Затем вы можете продолжить получать их или отменить их. Вы можете запросить обновления как по сети, так и по GPS.

Если вы используете телефон для проверки своего кода, тогда вам придется подождать с исправлением GPS, а это может занять некоторое время. Сетевой провайдер должен быть намного быстрее.

Если вы используете Eclipse , то вам необходимо отправлять искусственные обновления GPS, используя DDMS . Вы не можете протестировать сетевого провайдера из эмулятора (вы никогда не получите обновления).

...