我有一个应用程序,用于连接到无法连接到Internet的WiFi网络。它在Nougat之前的版本上运行良好。几周前我将手机升级为Nougat后,我再也无法连接到同一个WiFi网络了。它短暂连接并断开连接,然后回滚到以前连接到Internet的网络。下面是在Nougat之前工作正常的代码。
WifiManager manager = (WifiManager) activity.getSystemService(Context.WIFI_SERVICE);
WifiConfiguration selectedConfig = new WifiConfiguration();
selectedConfig.SSID = ssid;
selectedConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
manager.addNetwork(selectedConfig);
List<WifiConfiguration> cofigs = manager.getConfiguredNetworks();
for( WifiConfiguration config : cofigs)
{
if(config.SSID != null && config.SSID.equals(selectedConfig.SSID))
{
manager.disconnect();
manager.enableNetwork(config.networkId, true);
break;
}
}
过去,在manager.enableNetwork(config.networkId,true)中设置为true似乎让连接保持与没有连接到互联网的网络。然而,自从牛轧糖以后,这似乎不再适用了。
有谁知道发生了什么以及如何使其发挥作用?
感谢。
答案 0 :(得分:0)
enableNetwork方法的布尔参数是阻止其他网络。 实际上,您无法告诉设备连接到某个网络,您唯一能做的就是阻止其他网络,这样,设备必须连接的唯一选项就是您没有连接到的网络。 #39; t disable(第一个参数上带id的那个)。
我建议您尝试检查addNetwork返回的内容并检查此google问题Google issue。
如果这不能解决您的问题,请检查您是否正在扫描其他地方。如果您扫描可用的网络,您的设备将启用其他网络,因此其他网络将不再被禁用,您的设备将连接到它在开头的那个或具有更高优先级的设备。< / p>
希望有所帮助