Как получить текущее местоположение на Android - PullRequest
1 голос
/ 16 марта 2011

Эй, ребята, я хочу узнать широту и долготу местоположения пользователей.Я перепробовал сайт разработчиков и переполнение стека, есть множество примеров, ориентированных на движущегося пользователя, которые используют что-то вроде: - onLocationChanged () Мне не нужны обновления местоположения, пользователь просто откроет его на минуту или две, поэтому яМне нужно найти местоположение во время запуска приложения и что, если пользователь никогда ранее не использовал приложение геолокации, поэтому я также хотел бы найти альтернативу для LocationManager.getLastKnownLocation ()

Мой код: -

LocationManager lm = (LocationManager)
        getSystemService(Context.LOCATION_SERVICE);
        // connect to the GPS location service
        Location loc = lm.getLastKnownLocation(lm.NETWORK_PROVIDER);
        Toast.makeText(currentLocation.this, "Latitude -> "+Double.toString(loc.getLatitude())
                +" Longitude is -> "+Double.toString(loc.getLongitude()), Toast.LENGTH_LONG).show();

и работает нормально.Но я боюсь, что getLastKnownLocation может вернуть ноль при первом использовании.

Спасибо

1 Ответ

3 голосов
/ 16 марта 2011

Подпишитесь на обновления местоположения, и как только вы получите первое обновление, вы можете отменить регистрацию для будущих обновлений.

Другими словами, создайте LocationListener и зарегистрируйте его с помощью LocationManager requestLocationUpdates метода. В методе onLocationChanged вашего LocationListener вызовите метод removeUpdates для вашего LocationManager с this в качестве параметра.

Это может занять некоторое время, прежде чем вы получите новое местоположение, но кроме использования getLastKnownLocation на самом деле нет альтернативы.

...