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