请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

houcx

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2793|回复: 0

Android WIFI 联接不加密热点总是失败 addNetwork总是返回-1

[复制链接]

224

主题

226

帖子

1133

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1133
发表于 2015-8-13 15:37:07 | 显示全部楼层 |阅读模式

问题:连接加密的热点 就可以连接,连接不加密的热点不能连接。addNetwork这个操作总是返回-1

代码如下:这是connect

  1. public static boolean Connect(String SSID, String Password, int Type) {         
  2.         WifiConfiguration wifiConfig = createWifiInfo(SSID, Password, Type);        
  3.         if (wifiConfig == null) {
  4.         Log.v(TAG,"wifiConfig == null");
  5.             return false;
  6.         }
  7.         int netID = settingWifiAdmin.wifiManager.addNetwork(wifiConfig);
  8.         Log.v(TAG,"netID = "+netID);//连不加密AP总是返回-1  
  9.         boolean bRet = settingWifiAdmin.wifiManager.enableNetwork(netID, true);
  10.         return bRet;
  11.     }
复制代码
  1. /***
  2.      * 配置要连接的WIFI热点信息   
  3.      * @param SSID
  4.      * @param password
  5.      * @param type  加密类型
  6.      * @return
  7.      */     
  8.     public static WifiConfiguration createWifiInfo(String SSID, String password, int type) {  
  9.         
  10.         Log.e(TAG, "SSID = " + SSID + "## Password = " + password + "## Type = " + type);  
  11.          
  12.         WifiConfiguration config = new WifiConfiguration();  
  13.         config.allowedAuthAlgorithms.clear();  
  14.         config.allowedGroupCiphers.clear();  
  15.         config.allowedKeyManagement.clear();  
  16.         config.allowedPairwiseCiphers.clear();  
  17.         config.allowedProtocols.clear();  
  18.         config.SSID = """ + SSID + """;  
  19.   
  20.         //增加热点时候 如果已经存在SSID 则将SSID先删除以防止重复SSID出现
  21.         WifiConfiguration tempConfig = wifiAdmin.IsExsits(SSID);  
  22.         if (tempConfig != null) {  
  23.         settingWifiAdmin.wifiManager.removeNetwork(tempConfig.networkId);   
  24.         }  
  25.          
  26.         // 分为三种情况:没有密码   用wep加密  用wpa加密  
  27.         if (type == SECURITY_NONE) {   // WIFICIPHER_NOPASS  
  28.             config.wepKeys[0] = "";  
  29.             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);  
  30.             config.wepTxKeyIndex = 0;   
  31.               
  32.         } else if (type == SECURITY_WEP) {  //  WIFICIPHER_WEP   
  33.             config.hiddenSSID = true;  
  34.             config.wepKeys[0] = """ + password + """;  
  35.             config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);  
  36.             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);  
  37.             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);  
  38.             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);  
  39.             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);  
  40.             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);  
  41.             config.wepTxKeyIndex = 0;  

  42.         } else if (type == SECURITY_PSK) {   // WIFICIPHER_WPA  
  43.             config.preSharedKey = """ + password + """;  
  44.             config.hiddenSSID = true;  
  45.             config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);  
  46.             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);  
  47.             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);  
  48.             config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);   
  49.             config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);  
  50.             config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);  
  51.             config.status = WifiConfiguration.Status.ENABLED;  
  52.         }            
  53.         return config;  
  54.     }      
复制代码

解决办法:

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


把与wep有关的都注释掉就行了



来自:http://blog.csdn.net/jdsjlzx/article/details/40836245
[发帖际遇]: admin 发帖时在路边捡到 1 金钱,偷偷放进了口袋. 幸运榜 / 衰神榜
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|houcx ( 京ICP备15004793号  

GMT+8, 2019-7-20 07:09 , Processed in 0.060759 second(s), 31 queries .

Powered by houcx! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表