我正在创建一个应用程序,它可以列出ListView中所有可用的无线网络。如果我在List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
之前缓存的列表中选择了一个wifi,那么它应该连接到它。如果WifiConfiguration
列表不包含所选的wifi,则不会发生任何事情。我的问题是,有时我从列表中选择一个wifi(我知道它肯定在WifiConfiguration
列表中),但它不连接到它。相反,它连接到以前连接的无线网络。经过一些尝试(一次又一次地选择相同的wifi),它最终连接到它。这不会总是发生,只是有时候。可能是什么问题?这里是我的代码片段:连接到特定的WiFi有时失败android
// Go through all the cached wifis and check if the selected GoPro was cached before
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.enableNetwork(config.networkId, true);
mWifiManager.reconnect();
break;
}
}
感谢Daniel的简要解释!它是如何解释它真的很有意义!我远离了我正在开发的机器,但明天它将是第一个尝试它的机器! – Silex
我刚刚测试出您的解决方案,并且完美地工作,谢谢! – Silex
也许很重要的一点是,事情已经从Android 6开始改变了:https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-network据我所知,它将只能禁用网络,如果这个网络之前已被相同的应用程序所支持 – soey