2016-05-25 8 views
1

Ich muss den Standort des Benutzers über 3G oder WIFI abrufen.LocationManager gibt NETWORK_PROVIDER deaktiviert

Das ist, was ich versuche zu tun: geben LocationManager.NETWORK_PROVIDER als Parameter

LocationListener locationListener = new LocationListener() { 
      public void onLocationChanged(Location location) { 
       manageLocation(location); 
      } 

      public void onStatusChanged(String provider, int status, Bundle extras) { 

      } 

      public void onProviderEnabled(String provider) { 

      } 

      public void onProviderDisabled(String provider) { 

      } 
     }; 
     locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); 

Das Problem ist, dass der einzige Rückruf, der aufgerufen wird onProviderDisabled ist.

Ich habe diese Erlaubnis im Manifest bekommt:

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

Wie kann ich diese Art von Ort in meiner Anwendung aktivieren?

Antwort

3

Der Benutzer muss in die App Einstellungen des Geräts gehen und Standortanbieter aktivieren. Sie können das nicht direkt selbst aktivieren.

+0

so Benutzer muss GPS aktiviert haben – JackTurky

+0

@JackTurky: Der Benutzer muss Standorte aktiviert haben, nicht unbedingt GPS spezifisch. Ob das Gerät das Aktivieren/Deaktivieren einzelner Standortdatenquellen unterstützt, hängt von der Betriebssystemversion und in geringerem Maße vom Gerätehersteller ab. – CommonsWare