1
我在運行KitKat的三星設備上遇到此問題。它似乎不影響我運行棒棒糖的Nexus設備。如何在不禁用以前的網絡的情況下在Android上切換Wi-Fi網絡?
我使用此代碼Wi-Fi網絡之間切換:
private void switchToNetwork(String ssid) {
WifiConfiguration configuration = new WifiConfiguration();
configuration.SSID = String.format(Locale.US, "\"%s\"", ssid);
// ... other configuration changes such as password and cipher
manager.disconnect();
manager.enableNetwork(params[0].configuration.networkId, true);
manager.reconnect();
}
然而,我注意到,如果我運行此代碼前在過去連接到Wi-Fi網絡,這些三星設備的變化該先前網絡的狀態將「關閉」。發生這種情況是因爲我在調用enableNetwork的第二個參數disableOthers
設置爲true。
「關閉」狀態表示如果其他網絡關閉,網絡將不會自動切換到。出於我的目的,我手動切換回網絡,但在某些情況下(例如應用程序崩潰),可能需要網絡自動切換。
當我改變disableOthers
爲假,但是,它並不總是改變我的SSID我switchToNetwork要求()。它通常會停留在以前的SSID上。
所以:如何保證我切換到新網絡而不禁用以前的網絡?
是否有任何方法來禁用當前活動的wifi網絡並連接到新的 –
有一個{WifiManager#disableNetwork} API,它以網絡ID爲參數。有更多的API,看看https://developer.android.com/reference/android/net/wifi/WifiManager.html – vishalm