2016-09-28 102 views
2

我试图检查移动连接到所需的WiFi不是?所以,我使用这个代码。Android - 连接到指定的无线网络和检查SSID

(wifiInfo.getSSID().equals("WiredSSID")) 

但它不起作用。当我尝试制作烤面包名称时,仍显示“WiredSSID”。所以,我不知道什么是错的。

此外,我怎样才能自动连接到Captive Portal Wifi。我使用代码从How do I connect to a specific Wi-Fi network in Android programmatically?

使它成为OPEN类型(conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);)并将其放入OnCreate函数,但它无法工作。我不知道我应该改变网络类型吗?请帮助我,谢谢

回答

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(); 
      } 
     } 
+0

令人惊叹!我现在可以连接wifi。非常感谢 :) –

1
String networkSSID = "WiredSSID"; 
(wifiInfo.getSSID().equals("\"" + networkSSID + "\"")) 

请注意引号。字符串应该在引号中包含ssid。

+0

它的工作原理!谢谢。你能解释一下关于连接Captive Portal Wifi的第二个问题吗? –

+0

@SafeNo,我不知道什么是Captive Portal Wifi,但是,您可能会尝试接受我的回答,并将另一个问题放在另一个新问题中。谢谢。 –