2013-09-10 3 views
0

Мое приложение нуждается в местоположении и когда 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 включен?

ответ

0

Это может быть проблема с разрешением. Open AndroidMaifest.xml и убедитесь, что у вас есть

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

У меня еще больше: ACCESS_COARSE_LOCATION, CCESS_NETWORK_STATE – krzakov

Смежные вопросы