android 连接指定wifi不成功,连接到特定的wifi有时会在Android上失败

在Android设备上,无法直接指定连接某个WiFi网络,系统会根据已启用的网络自行选择。要强制连接到特定网络,需要先断开当前连接,然后启用目标网络ID并尝试重新连接。如果希望排除其他网络,可以遍历并禁用不需要的网络配置。
摘要由CSDN通过智能技术生成

Daniel Nugen..

10

这是正在发生的事情.基本上,您可以告诉操作系统禁用网络,并且您可以告诉操作系统启用网络,但是无法告诉操作系统要连接到哪个网络.

如果在设备上配置了多个WiFi接入点(并且两者都处于enabled状态),则操作系统将决定连接哪个接入点.

强制操作系统连接到范围中的一个网络而不是另一个网络的唯一方法是调用disableNetwork()您不想连接的范围内的网络.

让我们逐行完成您的代码:

mWifiManager.disconnect();

上面的行告诉操作系统断开与当前连接的WiFi接入点的连接.

mWifiManager.enableNetwork(config.networkId, 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 : confi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值