gpt4 book ai didi

android - 在 Android 中连接到 wifi

转载 作者:行者123 更新时间:2023-11-30 03:40:18 25 4
gpt4 key购买 nike

我正在开发一个 android 应用程序,它涉及在范围内连接到特定的 wifi。完成一些操作后,我会尝试连接回原来的 wifi。出于某种奇怪的原因,它按我的意愿连接到我原来的 wifi,但大约 30 秒后,它断开了连接。当我检查设备上的 wifi 设置时,它显示 wifi 已禁用。

总结:
1. 连接 Wifi W1。
2. 当 Wifi W2 在范围内时,连接到那个(使用 SSID)但是,记住 W1 的 SSID 以备后用。
3. 断开与 W2 的连接并在 wifi 配置列表中查找 W1(使用 SSID)。找到后,连接到那个。

所有三个步骤都有效,但由于某种原因,在第 3 步成功后不久(< 1 分钟)设备断开并禁用了与 W1 的连接。只有当我通过代码更改 wifi 连接时才会发生这种情况。这是我的代码的样子:“net”变量包含原始 wifi 连接的 SSID (W1) 的 SSID 值。有谁知道为什么我会在重新连接到原始 Wifi 后不久就断开连接?

if(net!=""){
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.contains(net)) {
wifiManager.disconnect();

wifiManager.enableNetwork(i.networkId, true);

wifiManager.setWifiEnabled(true);
break;
}
}
}

最佳答案

我有一个建议,我不确定这是否能解决问题,但值得一试

在下面的代码中,如果你放置

if(net!=""){
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.contains(net)) {
wifiManager.disconnect();

//place a sleep on thread so that the underlying hardware gets some time to disconnect
Thread.sleep(10000);
//Now trying connecting to the previous network. Also try increasing the time to wait if 5 seconds is not working.

wifiManager.enableNetwork(i.networkId, true);

wifiManager.setWifiEnabled(true);
break;
}
}
}

编辑:

它似乎与超过 10 秒的间隔一起工作。我认为这个时间间隔取决于设备的 WiFi 芯片组,它需要一些时间来断开当前网络并连接到其他网络。此外,如果设备的芯片组质量较低,则可能需要更长的时间。此外,我认为如果设备的芯片组质量较高,则速度会快得多。

关于android - 在 Android 中连接到 wifi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15851962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com