关于连接无密码的wifi问题

来源:互联网 发布:windows whistler 2257 编辑:程序博客网 时间:2024/05/22 14:08

最近在调试一个自动连接无线热点的程序,中间遇到了点问题,当连接无密码的wifi的时候,会出现连接不上的问题。原代码如下,摘自互联网

 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.hiddenSSID = true;          config.wepKeys[0] = "";        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);        config.wepTxKeyIndex = 0;      }      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;      }      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.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);            config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);       config.status = WifiConfiguration.Status.ENABLED;        }            return config;     }

修改后的代码如下

  if(Type == WifiCipherType.WIFICIPHER_NOPASS)      {      config.hiddenSSID = true;  //        config.wepKeys[0] = "";        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);//        config.wepTxKeyIndex = 0;      }

把与wep有关的注释掉了。

调用代码

mWifiManager = (WifiManager)getSystemService(WIFI_SERVICE);mConnect =new WifiConnect(mWifiManager);mConnect.Connect(SSID, null, WifiCipherType.WIFICIPHER_NOPASS);


原创粉丝点击