如何在Android中检查WiFi网络的密码是否正确?

时间:2013-12-30 13:16:22

标签: android android-wifi

在我的应用程序中,我要求用户选择WiFi网络并输入密码(如果需要)。如何检查密码是否正确?

以下是我连接WPA网络的代码

conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\"";
networkPass = input.getText().toString();
conf.preSharedKey = "\""+ networkPass +"\"";
WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE); 
wifiManager.addNetwork(conf);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
if (list.size()>0)
{
    for (WifiConfiguration i : list ) {
        if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
             wifiManager.disconnect();
             wifiManager.enableNetwork(i.networkId, true);
             wifiManager.reconnect();               
             break;
         }           
    }
}

1 个答案:

答案 0 :(得分:2)

两个选项: 1)使用像this这样的BroadcastReceiver。连接成功后会收到意图。但如果密码不正确,你就不会得到一个。所以我的建议是:

2)稍后检查(如2s后)使用Handler。因为关联和连接到WiFi网络需要花费时间,并且连接或与网络关联的实际任务是在后台异步完成的。所以稍后再检查一下(1s太短,2秒对我有效。你可以试试其他号码。)