我想寫一些代碼,將斷開當前的WiFi網絡(如果有的話),並重新連接到已知的SSID特定的WiFi網絡。Android快速切換到已知的無線網絡
我一直在使用這裏使用的代碼; How do I connect to a specific Wi-Fi network in Android programmatically?
它可以工作,但連接需要幾秒鐘,最多約10秒鐘。
具體來說,我使用的代碼如下;
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
WifiConfiguration config;
我獲得的配置,無論是通過創建一個新的和設置SSID和KeyMgmt爲NONE,然後將它添加;
wifiManager.add(config);
或者通過獲取已存在的配置;
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for(WifiConfiguration i : list) {
if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
config = i;
break;
}
}
然後我打電話;
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
我收到檢查無線網絡連接狀態的廣播,當我得到一個連我正確的SSID我可以繼續,但是,這個過程需要高達10秒,我怎麼可以設置config或wifimanager連接這更快?
感謝
您是否找到了您的問題的答案?你有沒有試過關閉DHCP來改善連接所需的時間?我想做同樣的事情,以快速消費託管在不同網絡中的服務,我在想mDNS。 – 2017-01-30 06:28:36
@Hamid此代碼是否適用於您,從一個網絡切換到另一個網絡? – 2017-04-09 07:07:28
使用此代碼,再次重新連接到同一網絡 – 2017-04-09 07:08:39