Android-如何使用SSID和密码连接Wi-Fi

时间:2019-10-17 09:34:26

标签: java android android-studio wifi android-wifi

我从用户那里获得了SSID和密码作为输入。我想创建一个函数connectWifi(String SSID, String password),该函数返回连接成功无效的凭据。使用SSID和密码连接Wi-Fi的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用以下代码段检查可用的wifi网络并连接到指定的wifi网络。

List<ScanResult> wifiScanList = wifi.getScanResults();
         wifis = new String[wifiScanList.size()];

         for(int i = 0; i < wifiScanList.size(); i++){
            wifis[i] = ((wifiScanList.get(i)).SSID);                

            if(wifis[i].equals("WiredSSID")) {

                 WifiConfiguration wifiConfig = new WifiConfiguration();
                 wifiConfig.SSID = String.format("\"%s\"", wifis[i]);
                 wifiConfig.preSharedKey = String.format("\"%s\"", "password");

                 WifiManager wifiManager = (WifiManager)getSystemService(WIFI_SERVICE);
                 //remember id
                 int netId = wifiManager.addNetwork(wifiConfig);
                 wifiManager.disconnect();
                 wifiManager.enableNetwork(netId, true);
                 wifiManager.reconnect();
             }
         }

并且您还必须检查正确的权限!

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

答案 1 :(得分:0)

我们可以使用以下方法使用提供的密码连接wifi

String connectWifi(String ssid, String password){
   WifiConfiguration wifiConfig = new WifiConfiguration();
   wifiConfig.SSID = String.format("\"%s\"", ssid);
   wifiConfig.preSharedKey = String.format("\"%s\"", password);
   WifiManager wifiManager = (WifiManager)getSystemService(WIFI_SERVICE);
   //remember id
   int netId = wifiManager.addNetwork(wifiConfig);
   wifiManager.disconnect();
   wifiManager.enableNetwork(netId, true);

   boolean isConnectionSuccessful = wifiManager.reconnect();

   if(isConnectionSuccessful){
       return "connection successful";
   }else{
       return "invalid credential";
   }
}