Как я получаю текущую Широту и Долготу мобильного устройства в андроиде с помощью инструментов местоположения?
Используйте 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 ()
.