在我的应用程序中,我要求用户选择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;
}
}
}
答案 0 :(得分:2)
两个选项: 1)使用像this这样的BroadcastReceiver。连接成功后会收到意图。但如果密码不正确,你就不会得到一个。所以我的建议是:
2)稍后检查(如2s后)使用Handler。因为关联和连接到WiFi网络需要花费时间,并且连接或与网络关联的实际任务是在后台异步完成的。所以稍后再检查一下(1s太短,2秒对我有效。你可以试试其他号码。)