Android中的Wifi身份验证错误

Android中的Wifi身份验证错误,android,wifi,Android,Wifi,我正在Android中开发一个使用Wifi的应用程序。每当我在连接wifi时输入错误的密码时,我不会收到任何无效身份验证的通知。它只是不断地尝试连接。wifi无线设置中也存在相同的行为 有没有办法发现Wifi身份验证失败 WifiManager.EXTRA\u suplicant\u错误--我从来没有得到这个..此代码有效: IntentFilter mIntentFilter = new IntentFilter(); mIntentFilter.addAction(WifiManager.S

我正在Android中开发一个使用Wifi的应用程序。每当我在连接wifi时输入错误的密码时,我不会收到任何无效身份验证的通知。它只是不断地尝试连接。wifi无线设置中也存在相同的行为

有没有办法发现Wifi身份验证失败

WifiManager.EXTRA\u suplicant\u错误--我从来没有得到这个..

此代码有效:

IntentFilter mIntentFilter = new IntentFilter();
mIntentFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);
registerReceiver(receiverWifi, mIntentFilter);


class WifiReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context c, Intent intent) {
        String action  = intent.getAction();
        if(action.equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)){
            Log.d("WifiReceiver", ">>>>SUPPLICANT_STATE_CHANGED_ACTION<<<<<<");
            SupplicantState supl_state=((SupplicantState)intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE));
            switch(supl_state){
            case ASSOCIATED:Log.i("SupplicantState", "ASSOCIATED");
                break;
            case ASSOCIATING:Log.i("SupplicantState", "ASSOCIATING");
                break;
            case AUTHENTICATING:Log.i("SupplicantState", "Authenticating...");
                break;
            case COMPLETED:Log.i("SupplicantState", "Connected");
                break;
            case DISCONNECTED:Log.i("SupplicantState", "Disconnected");
                break;
            case DORMANT:Log.i("SupplicantState", "DORMANT");
                break;
            case FOUR_WAY_HANDSHAKE:Log.i("SupplicantState", "FOUR_WAY_HANDSHAKE");
                break;
            case GROUP_HANDSHAKE:Log.i("SupplicantState", "GROUP_HANDSHAKE");
                break;
            case INACTIVE:Log.i("SupplicantState", "INACTIVE");
                break;
            case INTERFACE_DISABLED:Log.i("SupplicantState", "INTERFACE_DISABLED");
                break;
            case INVALID:Log.i("SupplicantState", "INVALID");
                break;
            case SCANNING:Log.i("SupplicantState", "SCANNING");
                break;
            case UNINITIALIZED:Log.i("SupplicantState", "UNINITIALIZED");
                break;
            default:Log.i("SupplicantState", "Unknown");
                break;

            }
            int supl_error=intent.getIntExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, -1);
            if(supl_error==WifiManager.ERROR_AUTHENTICATING){
                Log.i("ERROR_AUTHENTICATING", "ERROR_AUTHENTICATING!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
            }
        }
    }
}

<receiver
    android:name=".MyActivity$WifiReceiver"
    android:process=":remote" >
</receiver>
IntentFilter minentfilter=newintentfilter();
minentfilter.addAction(WifiManager.requiciant\u STATE\u CHANGED\u ACTION);
注册接收者(接收者WiFi、MinentFilter);
类WifiReceiver扩展了BroadcastReceiver{
@凌驾
接收时公共无效(上下文c,意图){
String action=intent.getAction();
if(action.equals(WifiManager.supliciant\u STATE\u CHANGED\u action)){

Log.d(“WifiReceiver”,“WifiReceiver”,“WifiReceiver”,“>>>>>请求者状态”已更改\u操作它似乎不是100%可靠。@ahtartam如何知道此请求者状态所指的是哪个ssid?
int supl\u error=intent.getIntExtra(WifiManager.EXTRA\u请求者错误,-1);if(supl\u error==WifiManager.error\u身份验证){Log.i(“错误(认证),"错误(认证)"错误(认证)!!!!!!!!!!!!!
我的代码没有通过此if语句,因为supl_错误始终为-1,即使尝试连接到输入无效密码的wifi时也是如此。有什么想法吗?谢谢..注意:当我成功连接到wifi时,我收到supl_状态已完成,唯一的问题是无法使用无效PW进行身份验证时出现supl_错误。