android 解决部分手机连接热点wifi导致被切换,enablenetwork(netID, true)无效的问题

写之前先简单介绍下发现的问题:

 A手机创建热点"mini",B手机在连接热点之前,连接的SSID叫做"haha",这时使用enablenetwork(netID, true)方法,连接A创建的热点"mini",一般出现的过程就是先断开"haha",连接"mini"热点,这个过程中,大部分的手机会成功连接上"mini",但是部分手机如OPPO R7 Plus就不能连接上"mini",这种型号的手机连接过程是先断开"haha",连接"mini"热点,但是最后连接的还是"haha",这是为什么呢?
    原来,wifiManager.enableNetwork(netID, true);这个方法只是执行 命令让去连接"指定的SSID",就算返回true也不代表最终连接的wifi是指定的wiifi,这是为什么,是因为我们Wifi断开跟某个SSID连接的时候,系统读取了一个优先级连接,判断出一个要连接的SSID,而我们只想连接我们的SSID,这样此时相当于有两个线程同时在进行,一但我们的SSID先连接上,System的连接晚我们一步连接上,就会导致我们刚连接上的SSID,马上就断开了。          参考链接:http://www.bubuko.com/infodetail-1124873.html,受益良多

       期间还遇到一个问题就是连接无密热点wifi的情况下wifiManager.addNetwork(wifiConfig)返回的netid为-1,这种情况下直接做以下处理,所有目前能遇到的问题都在demo里面处理了,遇到相同问题的童鞋可以下载看看

//            config.wepKeys[0] = "";   
              config.hiddenSSID = true;
              config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
//            config.wepTxKeyIndex = 0;

以下奉上解决办法的demo的下载地址

http://download.csdn.net/detail/zs20082012/9718632

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值