NETWORK_PROVIDER не возвращен или работает

Я хочу найти текущее местонахождение устройства, где бы оно ни находилось. Приведенный ниже код отлично работает на открытом воздухе, но в помещении уведомления об обновлениях не приходят.

Код ниже не может получить доступ к NETWORK_PROVIDER, возвращаются только GPS_PROVIDER и PASSIVE_PROVIDER, почему? Другие приложения на том же устройстве могут определять мое местоположение в помещении.

if ( mLocationManager==null )
    mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

Location l;
for ( String provider : mLocationManager.getAllProviders() ){
    mLocationManager.requestLocationUpdates(provider, 1000, 1, locationListener);
    l = mLocationManager.getLastKnownLocation(provider);
    if ( isBetterLocation(l, currentBestLocation) )
    currentBestLocation = l;
}

когда я изменяю его на жестко закодированный NETWORK_PROVIDER:

    if ( mLocationManager==null )
    mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

Location l;
List<String> providers = new ArrayList<String>();
providers.add(LocationManager.GPS_PROVIDER);
providers.add(LocationManager.NETWORK_PROVIDER);
//  for ( String provider : mLocationManager.getAllProviders() ){
for ( String provider : providers ){
    mLocationManager.requestLocationUpdates(provider, 1000, 1, locationListener);
    l = mLocationManager.getLastKnownLocation(provider);
    if ( isBetterLocation(l, currentBestLocation) )
    currentBestLocation = l;
}

выдается следующее исключение:

11-17 14:06:13.145: E/AndroidRuntime(7896): Caused by: java.lang.IllegalArgumentException: provider=network

person user1105115    schedule 17.11.2013    source источник
comment
Определение местоположения с помощью WLAN включено в настройках, но mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) возвращает false. В то время как другие приложения на том же устройстве могут правильно определить местонахождение. Я не думаю, что это дуп на другие вопросы, пока нет ответа, устройство Motorola XT928, перезагрузка не помогает. Либо переключение на Google Play Service помогает, так как на многих устройствах в этом регионе Google Play отключен.   -  person user1105115    schedule 17.11.2013
comment
может быть тот же вопрос, что и этот, на который нет явного ответа.   -  person user1105115    schedule 17.11.2013
comment
У вас есть подключение к Интернету? Вам нужен доступ в Интернет, чтобы получить местоположение на основе nwetwork   -  person David Wasser    schedule 17.11.2013
comment
Да, конечно. Некоторые разработчики нашли его на Android 4.0+, но не дали явного ответа. Без обновлений ОС некоторые другие приложения на том же устройстве могут найти правильно, поэтому я думаю, что есть способ сделать это программно.   -  person user1105115    schedule 18.11.2013