因为工作需要,要求通过程序控制,指定手机连接某个WIFI,可是在手机当前的网络中,有多个已经保存的WIFI,在代码中指定连接其中的某一个WIFI,可是经常过了一阵子就自动断开,又自动重连另外的WIFI。
在网上找了半天,没有找到真正的原因,有的说是Android版本问题,要把DHCP改为用以前的版本,有的说是路由器频率问题,要修改频率设置。我遇到的现象貌似都不是这个原因,因为如果是手动连接这些WIFI,个个都很稳定,不会忽然自己断开重新连接别的WIFI,只有在我的程序里通过代码连接WIFI才会有这个问题。
后来忽然突发奇想,先手动把当前网络中所有已经保存的WIFI全部删除,再用程序连接指定WIFI后,结果就不断线了。嗯,想来也是这样,保存的WIFI只剩下这一个了,想断开连别的也不行啊。
但是这个做法也有问题,总不能跑了我的程序后,用户手机上之前保存的WIFI都没了,需要连接的时候还要重新输入密码,这样肯定不行。在网上找了一下,发现WifiManager有个disableNetwork函数,只需要在连接指定WIFI之前,把所有其余保存的WIFI全部disable,这样连接指定WIFI后,也同样不会断线,而且被disable的WIFI还是可用的,再次连接时不用重新输入密码。
本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/1894303,如需转载请自行联系原作者