我想在Android中以编程方式连接到特定的wifi。我提到了很多链接。但仍未实现目标。我正在按照以下代码连接特定的wifi。
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiConfiguration configuration = new WifiConfiguration();
configuration.SSID = String.format("\"%s\"", "ssid");
configuration.preSharedKey = String.format("\"%s\"", "paasword");
configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
int netId = wifiManager.addNetwork(configuration);
wifiManager.disconnect();
wifiManager.enableNetwork(netId,true);
wifiManager.reconnect();
当我尝试运行此代码时,。wifi连接将被断开,并再次自动连接以前的wifi网络。我正在使用redmi 6a mobile(版本9)进行测试。 谁能指导我解决这个问题。
谢谢。
答案 0 :(得分:3)
我相信您需要遍历所有可用的网络,然后连接到正确的网络(如果可用)。
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.equals("\"" + ssid + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}else{Log.e("TAG","Network Not Available")}
}