다음 WifiConfiguration과 같이 인스턴스 를 만들어야 합니다
String networkSSID = "test";
String networkPass = "pass";
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\""; // Please note the quotes. String should contain ssid in quotes
그런 다음 WEP 네트워크의 경우 다음을 수행해야합니다.
conf.wepKeys[0] = "\"" + networkPass + "\""; conf.wepTxKeyIndex = 0;
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
WPA 네트워크의 경우 다음과 같은 암호를 추가해야합니다.
conf.preSharedKey = "\""+ networkPass +"\"";
개방형 네트워크의 경우 다음을 수행해야합니다.
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
그런 다음 Android Wi-Fi 관리자 설정에 추가해야합니다.
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
마지막으로 활성화해야 할 수 있으므로 Android가 연결됩니다.
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}
UPD : WEP의 경우 암호가 16 진수이면 따옴표로 묶을 필요가 없습니다.