Я хочу выбрать LocationProvider, который включен в Android. Цель сборки проекта - Android 2.1.
Это то, что я делаю в 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();
// ...
Теперь я отключаю каждый сетевой интерфейс и устанавливаю режим полета на своем устройстве (HTC Desire, Android 2.2). Я отключаю устройство от USB. Ясно, что нет живого поставщика, который мог бы фактически предоставить данные о местоположении устройству. Я специально спрашиваю getBestProvider только для включенных провайдеров, поэтому я ожидаю, что в этом случае он вернет пустую или пустую строку. Я ожидаю, что isProviderEnabled вернет false.
Фактический результат состоит в том, что getBestProvider возвращает «сеть», а isProviderEnabled сообщает, что он «включен». «Сеть» всегда «включена», даже если ее нет?