在项目开发中开发WiFi管理模块中遇到几个问题,这里总结一下,方便以后进行查看:
问题1:WiFi热点名字相同(即ssid相同),这种情况下,,如果是拿ssid进行判断的话,那么无法进行区分,可能会出现下面的情况:
会有两个ssid为DAOBEN的热点显示已经连接,这样显然是不合理的,这里用的手机是魅族MX3,系统对这种情况的处理是对于相同的ssi的WiFi热点,只显示一个,根据输入的密码连接对应的WiFi。其实这里只要用BSSID进行判断就可以了。
问题2:WiFi断开后自动重连
在点击断开连接,调用disconnect()方法断开某个WiFi连接后,MUNI系统的手机又会自动重新连接到这个WiFi,而我这里想要的效果是,断开连接后不会重新连接。
解决方法:能重新连接的原因是已经保存了ConfiguredNetworks,只要将对应的将其配置删除即可,但是这样每次连接都要输入密码,但是项目中会提供默认密码,所以这个没有影响、
mWifiManager.removeNetwork(netID);
mWifiManager.saveConfiguration();
接下来还有另一个问题,不会自动连接已经断开的WiFi了,但是会自动连接其他已经保存密码的WiFi,这也是不符合项目要求,只能点击立即连接,才能连接,
解决方法:在断开连接的时候,将其他的WiFi disable掉:
mWifiManager.disableNetwork(netID);