【发布时间】:2014-04-23 08:36:51
【问题描述】:
让我们假设用户忘记了 Wifi 设置中的路由器“R1”。 现在,当我使用以下命令访问所有已配置路由器的列表时:
wifiManager.getConfiguredNetworks();
“R1”仍然存在于列表中。那么当我们忘记一个路由器时,它不会从配置列表中删除吗?
【问题讨论】:
标签: android android-wifi wifimanager
让我们假设用户忘记了 Wifi 设置中的路由器“R1”。 现在,当我使用以下命令访问所有已配置路由器的列表时:
wifiManager.getConfiguredNetworks();
“R1”仍然存在于列表中。那么当我们忘记一个路由器时,它不会从配置列表中删除吗?
【问题讨论】:
标签: android android-wifi wifimanager
我不确定我的解决方案,但您可以检查它是否适合您。 getConfiguredNetworks() 返回 List 的 WifiConfiguration 对象,这些对象具有 status 字段,我认为可以将其与 WifiConfiguration.Status 对象的字段进行比较。所以,请尝试以下方法:
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for (WifiConfiguration x : list) {
if (x.status != WifiConfiguration.Status.DISABLED){
...
}
}
【讨论】:
当您手动'forget' 一个网络时,它会从您的配置列表中删除。这可以通过以编程方式添加网络并使用本机 android WiFi 配置管理器添加网络来实现。
本机 Wifi 配置管理器不添加接入点的 BSSID。我的应用程序确实将 BSSID 添加到了接入点。原生 WiFi 控制器接受了这两者。但是,当出现要忘记的配置选项时,操作系统只会忘记一个。
我通过wiping all my configurations 修复了这个问题,并修复了我的代码,如果相同的 SSID 已经在配置和范围内,则不会以编程方式添加网络。
【讨论】: