Мое приложение нуждается в местоположении и когда GPS-провайдер включен, все работает правильно = я получаю свое местоположение. К сожалению, когда GPS отключен, мое приложение не может связаться с сетевым провайдером, даже если оно включено, и я не знаю, почему.Location Manager- function does'nt select provider
После этого на экране появляются новости Disabled provider Network
(в это время сеть доступна), и мое приложение вылетает.
Код:
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.NO_REQUIREMENT);
criteria.setPowerRequirement(Criteria.NO_REQUIREMENT);;
provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
if (location != null) {
System.out.println("Provider " + provider + " has been selected.");
onLocationChanged(location);
} else {
latituteField = "Location not available";
longitudeField = "Location not available";
}
}
/* Request updates at startup */
@Override
protected void onResume() {
super.onResume();
locationManager.requestLocationUpdates(provider,
400, 1, this);
needGPS = true;
}
/* Remove the locationlistener updates when Activity is paused */
@Override
protected void onPause() {
super.onPause();
if (needGPS == false || starttime == 0)
locationManager.removeUpdates(this);
}
protected void onStop() {
super.onPause();
if (needGPS == false || starttime == 0)
locationManager.removeUpdates(this);
}
@Override
public void onLocationChanged(Location location) {
double lat = (double) (location.getLatitude());
double lng = (double) (location.getLongitude());
latituteField = (String.valueOf(lat));
longitudeField = (String.valueOf(lng));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(this, "Enabled new provider " + provider,
Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText(this, "Disabled provider " + provider,
Toast.LENGTH_SHORT).show();
}
Почему провайдер сети отключается каждый раз, даже когда сеть на моем Galaxy SII включен?
У меня еще больше: ACCESS_COARSE_LOCATION, CCESS_NETWORK_STATE – krzakov