LocationManager: Ist der "Netzwerk" -Anbieter immer aktiviert?

Ich will wählen Sie ein LocationProvider, ist aktiviert in Android. Das Projekt target build ist Android 2.1.

Dies ist, was ich in onCreate().

//...
LocationManager locationMgr = (LocationManager) 
getSystemService(Context.LOCATION_SERVICE);

Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.NO_REQUIREMENT);
criteria.setPowerRequirement(Criteria.NO_REQUIREMENT);
criteria.setCostAllowed(false);     

String bestProvider = locationMgr.getBestProvider(criteria, true);  

Toast.makeText(getApplicationContext(),   "Provider = " + bestProvider + " enabled= " + locationMgr.isProviderEnabled(bestProvider), Toast.LENGTH_LONG).show();
//...

Nun, ich schalte jedes Netzwerk-interface aus, und stellen Sie den flight mode auf meinem Gerät (HTC Desire, Android 2.2). Ich trennen Sie das Gerät vom USB. Es ist eindeutig kein provider lebt, der könnte eigentlich auch Standort-Daten an das Gerät. Ich speziell Fragen getBestProvider für aktivierte Anbieter, nur, so ich erwarten, dass es wieder null oder eine leere Zeichenfolge in diesem Fall. Ich erwarte, dass isProviderEnabled den Wert false zurück.

Dem tatsächlichen Ergebnis ist, dass getBestProvider gibt "Netzwerk" und isProviderEnabled meldet "aktiviert". Ist "Netzwerk" immer "enabled", auch wenn Sie gar nicht?

InformationsquelleAutor der Frage rgr_mt | 2011-02-05

Schreibe einen Kommentar