public class WifiConnect { WifiManager wifiManager; //Define several encryption methods, one is WEP, the other is WPA, and there is no password public enum WifiCipherType { WIFICIPHER_WEP, WIFICIPHER_WPA, WIFICIPHER_NOPASS, WIFICIPHER_INVALID } //Constructor public WifiConnect(WifiManager wifiManager) { this.wifiManager = wifiManager; } //Turn on the wifi function private boolean OpenWifi() { boolean bRet = true; if (!wifiManager.isWifiEnabled()) { bRet = wifiManager.setWifiEnabled(true); } return bRet; } //Provide an external interface, pass in the wireless network to be connected public boolean Connect(String SSID, String Password, WifiCipherType Type) { if (!this.OpenWifi()) { return false; } //It takes a while to turn on the wifi function (it usually takes about 1-3 seconds to test on my mobile phone), so wait until wifi //The following statement can only be executed when the state becomes WIFI_STATE_ENABLED while (wifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLING) { try { //In order to avoid the while loop of the program, let it sleep for 100 milliseconds to detect... Thread.currentThread(); Thread.sleep(100); } catch (InterruptedException ie) { } } WifiConfiguration wifiConfig = this.CreateWifiInfo(SSID, Password, Type); // if (wifiConfig == null) { return false; } WifiConfiguration tempConfig = this.IsExsits(SSID); // if (tempConfig != null) { // wifiManager.removeNetwork(tempConfig.networkId); // } int netID = wifiManager.addNetwork(wifiConfig); boolean bRet = wifiManager.enableNetwork(netID, true); return bRet; } //Check if this network has been configured before private WifiConfiguration IsExsits(String SSID) { List<WifiConfiguration> existingConfigs = wifiManager.getConfiguredNetworks(); for (WifiConfiguration existingConfig : existingConfigs) { if (existingConfig.SSID.equals("\"" + SSID + "\"")) { return existingConfig; } } return null; } private WifiConfiguration CreateWifiInfo(String SSID, String Password, WifiCipherType Type) { WifiConfiguration config = new WifiConfiguration(); config.allowedAuthAlgorithms.clear(); config.allowedGroupCiphers.clear(); config.allowedKeyManagement.clear(); config.allowedPairwiseCiphers.clear(); config.allowedProtocols.clear(); config.SSID = "\"" + SSID + "\""; if (Type == WifiCipherType.WIFICIPHER_NOPASS) { config.wepKeys[0] = ""; config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); config.wepTxKeyIndex = 0; return config; } if (Type == WifiCipherType.WIFICIPHER_WEP) { config.preSharedKey = "\"" + Password + "\""; config.hiddenSSID = true; config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); config.wepTxKeyIndex = 0; return config; } if (Type == WifiCipherType.WIFICIPHER_WPA) { config.preSharedKey = "\"" + Password + "\""; config.hiddenSSID = true; config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); config.allowedProtocols.set(WifiConfiguration.Protocol.WPA); config.status = WifiConfiguration.Status.ENABLED; } else { return null; } return config; } public String getWifiSSID() { String wifiId = null; if (wifiManager != null) { WifiInfo info = wifiManager.getConnectionInfo(); wifiId = info != null ? info.getSSID() : null; } return wifiId; } }
Android connection specified wifi
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=325150934&siteId=291194637
Recommended
Ranking