Почему значение моей переменной location null? Я правильно настраиваю свой LocationManager.Почему мое местоположение недействительно? - Android
Вот мой исходный код:
//Get the current location
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
myCriteria = new Criteria();
String provider = locationManager.getBestProvider(myCriteria, true);
Location location = locationManager.getLastKnownLocation(provider);
boolean isGpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
//Location location;
if (isGpsEnabled) {
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
else {
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
Log.i(TAG, "Provider is: "+provider);
Log.i(TAG, "Location is: "+location);
Вот выход LogCat:
06-17 10:40:52.637: D/dalvikvm(15106): GC_FOR_ALLOC freed 534K, 7% free 10586K/11360K, paused 16ms, total 16ms
06-17 10:40:52.677: I/OGT.RideTracking(15106): Provider is: gps
06-17 10:40:52.677: I/OGT.RideTracking(15106): Location is: null
06-17 10:40:52.677: D/AndroidRuntime(15106): Shutting down VM
Что случилось с моим кодом?
возможно дубликат [NullPointerException - Location - метод getLatitude()] (http://stackoverflow.com/questions/17150066/nullpointerexception-location-getlatitude-method) – Blackbelt
там не является гарантией того, что 'getLastKnownLocation' предоставляет вам местоположение. Если это «null», вы должны вызвать 'locationManager.requestLocationUpdates()' и ждать, пока поставщик получит местоположение. – rciovati
У вас есть права доступа ACCESS_FINE_LOCATION и ACCESS_COARSE_LOCATION? – neo