首页 > 代码库 > 连接WiFi工具类

连接WiFi工具类

 1 public class WifiConnect { 2  3     WifiManager wifiManager; 4  5     // 构造函数 6     public WifiConnect(WifiManager wifiManager) { 7         this.wifiManager = wifiManager; 8     } 9 10     // 提供一个外部接口,传入要连接的无线网11     public boolean Connect(String SSID, String Password, int Type) {12 13         WifiConfiguration wifiConfig = this14                 .CreateWifiInfo(SSID, Password, Type);15 16         WifiConfiguration tempConfig = this.IsExsits(SSID);17         if (tempConfig != null) {18             wifiManager.removeNetwork(tempConfig.networkId);19         }20 21         int netID = wifiManager.addNetwork(wifiConfig);22         boolean flag = wifiManager.enableNetwork(netID, true);23         return flag;24     }25 26     // 查看以前是否也配置过这个网络27     private WifiConfiguration IsExsits(String SSID) {28         List<WifiConfiguration> existingConfigs = wifiManager29                 .getConfiguredNetworks();30         for (WifiConfiguration existingConfig : existingConfigs) {31             if (existingConfig.SSID.equals("\"" + SSID + "\"")) {32                 return existingConfig;33             }34         }35         return null;36     }37 38     // 配置WifiConfiguration39     public WifiConfiguration CreateWifiInfo(String SSID, String Password,40             int Type) {41         WifiConfiguration config = new WifiConfiguration();42         config.allowedAuthAlgorithms.clear();43         config.allowedGroupCiphers.clear();44         config.allowedKeyManagement.clear();45         config.allowedPairwiseCiphers.clear();46         config.allowedProtocols.clear();47         config.SSID = "\"" + SSID + "\"";48 49         WifiConfiguration tempConfig = this.IsExsits(SSID);50         if (tempConfig != null) {51             wifiManager.removeNetwork(tempConfig.networkId);52         }53 54         if (Type == 1) // WIFICIPHER_NOPASS55         {56             config.wepKeys[0] = "";57             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);58             config.wepTxKeyIndex = 0;59         }60         if (Type == 2) // WIFICIPHER_WEP61         {62             config.hiddenSSID = true;63             config.wepKeys[0] = "\"" + Password + "\"";64             config.allowedAuthAlgorithms65                     .set(WifiConfiguration.AuthAlgorithm.SHARED);66             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);67             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);68             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);69             config.allowedGroupCiphers70                     .set(WifiConfiguration.GroupCipher.WEP104);71             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);72             config.wepTxKeyIndex = 0;73         }74         if (Type == 3) // WIFICIPHER_WPA75         {76             config.preSharedKey = "\"" + Password + "\"";77             config.hiddenSSID = true;78             config.allowedAuthAlgorithms79                     .set(WifiConfiguration.AuthAlgorithm.OPEN);80             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);81             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);82             config.allowedPairwiseCiphers83                     .set(WifiConfiguration.PairwiseCipher.TKIP);84             // config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);85             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);86             config.allowedPairwiseCiphers87                     .set(WifiConfiguration.PairwiseCipher.CCMP);88             config.status = WifiConfiguration.Status.ENABLED;89         }90         return config;91     }92 93 }

 

连接WiFi工具类