Android — широковещательный приемник состояния сети не получает намерения

У меня есть широковещательный приемник, которому нужно прослушивать изменения в сети -

BroadcastReceiver networkStateReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        boolean noConnectivity =
            intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
        if(!noConnectivity)
        {
            //some stuff
        }
    }
};

Я регистрирую его, используя -

public void startListening() {
        IntentFilter filter = new IntentFilter();
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        context.registerReceiver(networkStateReceiver, filter);
}

Я добавил следующее разрешение в манифест -

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

NetworkStateReceiver по-прежнему не получает никаких намерений, когда я переключаю телефон в режим полета, выключаю Wi-Fi и т. д. Я что-то упустил?


person Suchi    schedule 07.07.2011    source источник
comment
Я экспериментировал с той же проблемой... Вы исправили??   -  person Blackbelt    schedule 06.10.2011


Ответы (2)


Вы можете использовать это:

Сначала добавьте это перед @Override

private boolean isConnected = true;
private Context c;

Тогда используйте его

//check for connectivity:
ConnectivityManager connectivityManager = (ConnectivityManager) 
c.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo TestConnetion = connectivityManager.getActiveNetworkInfo();
if (TestConnetion == null){
isConnected=false;  
}
person Mr.James    schedule 07.07.2011
comment
Почему это отвечает на вопрос? Как это помогает в отправке намерения получателю? - person AlikElzin-kilaka; 21.07.2012

Вместо этого попробуйте использовать это действие:

Intent.ACTION_AIRPLANE_MODE_CHANGED

Изменить

Или для всех изменений состояния сети используйте:

"android.intent.action.SERVICE_STATE"

person Jason Robinson    schedule 07.07.2011
comment
Спасибо за ответ. :) - person Siddiq Abu Bakkar; 27.01.2014