IoTデバイスのAndroidアプリをプログラミングしています。私はデバイスにWiFiのユーザー名とパスワードを与えなければならないので、これを行うにはアンドロイドアプリを使用しています。私は次のコードを持っていますが、常にネットワークの天気に接続するか、正しいパスワードが与えられていないようです。AndroidテストWi-Fi接続をプログラム的に
これは私の電話機が接続されているのと同じAPでこれをテストしています。与えられた資格情報を使用して接続する>試み - - >元のネットワークに再接続
所望のアクションは、現在のAPから
切断です。
Wi-Fiネットワークとパスワードを正しく確認するにはどのような手順が必要ですか?
コード:あなたが利用できる無線LANネットワークをスキャンする必要はありませんかもしれ
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + ssid + "\"";
for(ScanResult sr: wifiList){
if(sr.SSID.equals(ssid)){
if(sr.capabilities.contains("WEP")){
if(isNumeric(pass)){
conf.wepKeys[0] = pass ;
}else{
conf.wepKeys[0] = "\"" + pass + "\"";
}
conf.wepTxKeyIndex = 0;
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
}else if(sr.capabilities.contains("PSK")){
conf.preSharedKey = "\""+ pass +"\"";
}else if(sr.capabilities.contains("EAP")){
wifiName.setError("EAP networks not supported");
//todo support EAP
}else{
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
}
WifiManager wifiManager = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for(WifiConfiguration i : list) {
if(i.equals(conf)) {
wifiManager.disconnect();
if(!wifiManager.enableNetwork(i.networkId, true)){
wifiPassword.setError("Incorrect Password");
wifiManager.reconnect();
return;
}else{
wifiManager.reconnect();
addUser(deviceSN, ssid, pass);
}
}
}
break;
}
}
のようなものですか? 私もこの問題に直面しています。私が間違ったパスワードを追加してもtrueを返します。あなたはこの問題を解決するためのアイディアを提案できますか? – AngelJanniee