BroadcastReceiver для CONNECTIVITY_ACTION всегда возвращает null в intent.getExtras ()


Я пытаюсь получить сообщения BroadcastMessages от CONNECTIVITY_ACTION:

    // register BroadcastReceiver on network state changes
    final IntentFilter mIFNetwork = new IntentFilter();
    mIFNetwork.addAction(android.net.ConnectivityManager.CONNECTIVITY_ACTION); //"android.net.conn.CONNECTIVITY_CHANGE"
    registerReceiver(mIRNetwork, mIFNetwork);

, а получатель:

private BroadcastReceiver mIRNetwork = new BroadcastReceiver() {
    @Override
    public void onReceive(final Context context, final Intent intent) {

        android.util.Log.i(TAG,"mIRNetwork: Network State Received: "+intent.getAction());
        Bundle extras = intent.getExtras();
        if (extras!=null){
                android.util.Log.i(TAG,"mIRNetwork: ACTION_BACKGROUND_DATA_SETTING_CHANGED: "+extras.getString(ConnectivityManager.ACTION_BACKGROUND_DATA_SETTING_CHANGED));
                android.util.Log.i(TAG,"mIRNetwork: CONNECTIVITY_ACTION: "+extras.getString(ConnectivityManager.CONNECTIVITY_ACTION));
                android.util.Log.i(TAG,"mIRNetwork: EXTRA_EXTRA_INFO: "+extras.getString(ConnectivityManager.EXTRA_EXTRA_INFO));
                android.util.Log.i(TAG,"mIRNetwork: EXTRA_NO_CONNECTIVITY: "+extras.getString(ConnectivityManager.EXTRA_NO_CONNECTIVITY));
                android.util.Log.i(TAG,"mIRNetwork: EXTRA_REASON: "+extras.getString(ConnectivityManager.EXTRA_REASON));

            }
        }

, короче говоря, extras всегда нулевой. Я думал, что если я потеряю соединение Wi-Fi, я должен получить EXTRA_NO_CONNECTIVITY (потому что это единственный путь в Интернет) или хотя бы что-то из списка. Но не повезло. Если я отключу свой приемник WiFi AP, он получит свое сообщение, но с нулевыми дополнениями. Когда я снова включаю Wi-Fi, приемник срабатывает, но никаких дополнительных функций ... Почему? Как узнать, что приложение потеряло подключение к сети? Я думал, это путь.

10
задан Stan 3 August 2011 в 09:01
поделиться