Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-如何使用SSID和密码连接Wi-Fi_Java_Android_Android Studio_Wifi_Android Wifi - Fatal编程技术网

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

Java Android-如何使用SSID和密码连接Wi-Fi,java,android,android-studio,wifi,android-wifi,Java,Android,Android Studio,Wifi,Android Wifi,我从用户那里获取SSID和密码作为输入。我想创建一个函数connectWifi(字符串SSID,字符串密码),该函数返回连接成功或无效凭据。使用SSID和密码连接Wi-Fi的最佳方式是什么?您可以尝试下面的代码片段来检查可用的wifi网络并连接到指定的wifi网络 List<ScanResult> wifiScanList = wifi.getScanResults(); wifis = new String[wifiScanList.size()];

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

您可以尝试下面的代码片段来检查可用的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();
             }
         }
List wifiScanList=wifi.getScanResults();
wifis=新字符串[wifiScanList.size()];
对于(int i=0;i
您还必须检查正确的权限

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

我们可以使用以下方法使用提供的密码连接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";
   }
}

不,可能是重复的,但不是。我对联系没有直接的兴趣。我想检查Wi-Fi密码是否正确。如果我输入了错误的密码,它仍在连接Wi-Fi。如果用户第一次连接到android手机上的Wi-Fi,则此实现不起作用。我想验证密码是否正确。有什么方法可以完成这项工作吗?你必须转到这个链接,我希望你能得到你的答案:
https://medium.com/@如果凭证正确,则josiassena/android-Operating-wifi-using-the-wifimanager-9af77cb04c6a
连接成功