以编程方式连接到特定的wifi

时间:2020-06-10 11:43:15

标签: android android-wifi

我想在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)进行测试。 谁能指导我解决这个问题。

谢谢。

1 个答案:

答案 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")}           
}