我正在創建一個應用程序,它可以列出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