您需要创建一个WifiConfiguration实例,如下所示:

String networkSSID = "test";

String networkPass = "pass";

WifiConfiguration conf = new WifiConfiguration();

conf.SSID = "\"" + networkSSID + "\""; //

然后,对于WEP网络,您需要这样做:

conf.wepKeys[0] = "\"" + networkPass + "\"";

conf.wepTxKeyIndex = 0;

conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);

conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);

对于WPA网络,您需要添加如下的密码:

conf.preSharedKey = "\""+ networkPass +"\"";

对于Open network,您需要这样做:

conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);

然后,您需要将其添加到Android Wi-Fi管理器设置:

WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

wifiManager.add(conf);

最后,您可能需要启用它,以便Android连接到它:

List list = wifiManager.getConfiguredNetworks();

for (WifiConfiguration i : list) {

if (i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {

wm.disconnect();

wm.enableNetwork(i.networkId, true);

wm.reconnect();

break;

}

}

如果是WEP,如果您的密码是十六进制,则不需要用引号括起来.

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐