2011-12-14 3 views
1

SSID를 사용하여 특정 Wifi 네트워크에 어떻게 연결합니까? 아래 코드를 사용해 보았습니다.안드로이드에서 사용 가능한 SSID 와이파이 네트워크에 어떻게 연결합니까?

wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 

     WifiConfiguration config = new WifiConfiguration(); 

     if(wifi.startScan()){ 
      List<ScanResult> results = wifi.getScanResults(); 
      for(int i=0;i<results.size();i++) 
      { Log.e("VALUE"," "+results.get(i).toString()); 
       Log.e("",""+results.get(i).SSID); 
       if(results.get(i).SSID.equalsIgnoreCase("\"MAC\"")) 
       { 
        Log.e("","mac....."); 

      try{ 
       String ssid="\""+results.get(i).SSID+"\mac""; 
       Log.e("SSId"," "+ssid); 
       config.SSID=ssid; 
      }catch(Exception e){Log.e("","Error : "+e.toString());} 

      config.preSharedKey="0a0b0f62170ecc5bcf721b6ff170b8b560101b5d56b00a26abec217e0bb4aa1f"; 
      config.status=WifiConfiguration.Status.ENABLED; 

      config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 
      config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); 
      config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 
      config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 
      config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 

      config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
      config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
      config.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 

      int res=wifi.addNetwork(config); 
        Log.e("ENABLE ",""+wifi.enableNetwork(res, false)); 

        break; 
       } 
      } 

     } 

이 작업을 수행하는 방법에 대한 정보는 어디에도 없습니다. 내가 어디로 잘못 가고 있니?

답변

0

귀하의 문제는 내가 갖고있는 문제와 관련이있을 수 있습니다. 스캔 결과에서 직접 SSID 값을 가져 오는 경우 큰 따옴표가 아니지만 WifiConfiguration을 사용하려면 SSID가 큰 따옴표로 묶여 있어야합니다. 내 대답을 참조하십시오.

https://stackoverflow.com/a/12616521/178931