2016-09-28 101 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,但是,您可能會嘗試接受我的回答,並將另一個問題放在另一個新問題中。謝謝。 –