Как получить Широту и Долготу мобильного устройства в андроиде?

Как я получаю текущую Широту и Долготу мобильного устройства в андроиде с помощью инструментов местоположения?

174
задан harry_p_6 31 August 2015 в 17:58
поделиться

1 ответ

Используйте LocationManager .

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();

Вызов getLastKnownLocation () не блокируется - это означает, что он вернет null , если в данный момент позиция недоступна - так что вы, вероятно, захотите взглянуть на передачу Вместо LocationListener в метод requestLocationUpdates () , который предоставит вам асинхронные обновления вашего местоположения.

private final LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
        longitude = location.getLongitude();
        latitude = location.getLatitude();
    }
}

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 10, locationListener);

Вам нужно предоставить своему приложению разрешение ACCESS_FINE_LOCATION , если вы хотите использовать GPS.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Вы также можете добавить разрешение ACCESS_COARSE_LOCATION на случай, когда GPS недоступен, и выбрать поставщика местоположения с помощью метода getBestProvider () .

323
ответ дан 23 November 2019 в 20:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: