admin管理员组文章数量:1620390
Daniel Nugen..
10
这是正在发生的事情.基本上,您可以告诉操作系统禁用网络,并且您可以告诉操作系统启用网络,但是无法告诉操作系统要连接到哪个网络.
如果在设备上配置了多个WiFi接入点(并且两者都处于enabled状态),则操作系统将决定连接哪个接入点.
强制操作系统连接到范围中的一个网络而不是另一个网络的唯一方法是调用disableNetwork()您不想连接的范围内的网络.
让我们逐行完成您的代码:
mWifiManager.disconnect();
上面的行告诉操作系统断开与当前连接的WiFi接入点的连接.
mWifiManager.enableNetwork(configworkId, true);
上面的行告诉设备将网络设置enabled为先前处于该disabled状态的状态.
mWifiManager.reconnect();
从文档:
如果我们当前已断开连接,请重新连接到当前活动的接入点.这可能导致状态更改事件的异步传递.
所以,当你说相反它连接回以前连接的wifi.,它正如预期的那样工作,因为操作系统正在重新连接到它认为当前活动的接入点.
如果你真的想要禁用其他网络,以便操作系统连接到你刚刚点击的那个,你可以这样做:
// Go through all the cached wifis and check if the selected GoPro was cached before
WifiInfo info = mWifiManager.getConnectionInfo(); //get WifiInfo
int id = info.getNetworkId(); //get id of currently connected network
for (WifiConfiguration config : configurations) {
// If it was cached connect to it and that's all
if (config.SSID != null && config.SSID.equals("\"" + mDrawerListView.getAdapter().getItem(position) + "\"")) {
// Log
Log.i("onReceive", "Connecting to: " + config.SSID);
mWifiManager.disconnect();
mWifiManager.disableNetwork(id); //disable current network
mWifiManager.enableNetwork(configworkId, true);
mWifiManager.reconnect();
break;
}
}
版权声明:本文标题:android 连接指定wifi不成功,连接到特定的wifi有时会在Android上失败 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728817822a1175120.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论