Android - Как подключить Wi-Fi с помощью SSID и пароля - PullRequest
0 голосов
/ 17 октября 2019

Я получаю SSID и пароль от пользователя в качестве входа. Я хочу создать функцию connectWifi(String SSID, String password), которая возвращает соединение успешно или недействительные учетные данные . Каков наилучший способ подключения Wi-Fi с использованием SSID и пароля?

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

Мы можем использовать следующий метод для подключения Wi-Fi с предоставленным паролем

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";
   }
}
0 голосов
/ 17 октября 2019

Вы можете попробовать приведенный ниже фрагмент кода, чтобы проверить наличие доступных сетей Wi-Fi и подключиться к указанной сети Wi-Fi.

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"/>
...