android - WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION 永远不会被解雇

标签 android android-intent android-broadcast

我正在 onResume() 上注册接收器:

registerReceiver(wifiConnectivityReceiver, new
                IntentFilter(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION));

这是接收器本身:

class WiFiConnectivityReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED,false)){
            Log.d(TAG,"Connected to network!");
        } else {
            Log.d(TAG,"Could not connect to network!");
        }
    }
}

在我的应用程序中,我能够连接到选定的 WiFi 网络,但是这个 SUPPLICANT_CONNECTION_CHANGE_ACTION 永远不会被触发。如果我​​将它更改为 SUPPLICANT_STATE_CHANGED_ACTION 例如它正在工作。

我正在研究 ICS。
有没有其他人遇到过这样的问题?

最佳答案

我认为以下代码可以帮助您:

public void installMyReceiver(){
    if (I) Log.i(TAG, "installMyReceiver() - Online");
    mFlag = true;


    myReceiver = new BroadcastReceiver(){
        public void onReceive (Context context, Intent intent){
            String action = intent.getAction();

            if (WifiManager.SUPPLICANT_STATE_CHANGED_ACTION.equals(action)){

                SupplicantState supplicantState = (SupplicantState)intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE);
                if (supplicantState == (SupplicantState.COMPLETED)){
                    if (I) Log.i(TAG, "SUPPLICANTSTATE ---> Connected");
                      //do something
                }

                if (supplicantState == (SupplicantState.DISCONNECTED)){
                    if (I) Log.i(TAG, "SUPPLICANTSTATE ---> Disconnected");
                       //do something
                }

            }
        }
    };

    IntentFilter mFilter = new IntentFilter (WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);
    this.registerReceiver (myReceiver, mFilter);
}

这是获取所需信息然后执行某些操作的简单方法。 希望对您有所帮助!

关于android - WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION 永远不会被解雇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814742/

相关文章:

java - 从 Intent 中检索信息,然后将其设置到 Fragment 内的 TextView - Android

java - 服务中的 Android BroadcastReceiver 在向其发送广播时给出空指针异常

android - Android 4.4 KitKat 上的 SMS 实用程序

Android java.lang.UnsatisfiedLinkError dalvik.system.PathClassLoader

android - 如何在中心显示箭头图像?

java - 我如何将 Intent 方法插入到此代码中,以便单击按钮时它将显示第二个 Activity

安卓独立服务

安卓.content.res.Resources$NotFoundException : String resource id #0x64

旋转设备后 Android 对话框重新打开

java - 尝试使用 SearchView 过滤 ListView。无论我输入哪个单词,都不会显示任何项目,即使 ListView 上存在相关项目