암호로 Wi-Fi AP에 접속하는 WEP나 WPA 방법의경우에 어떤게 잘못되었는지 
연결이 안되고 있습니다. 

암호 없이는 연결이 잘 되는데 암호걸린 WPA에는 code가 정상으로 에러 엇이 실행되었음에도 
Wi-Fi 연결은 되지 않은 상태로 있습니다. 

Wi-Fi에 실제로 연결이 되게 할 수 있으신 분은 연락 주시기 바랍니다. 

코드의 정상 동작이 확인이 된 후 입금토록 하겠습니다. 

읽어 주셔서 감사합니다. 
연락처 :  mobilemania@naver.com 

----------------------------------
아래는 조금 더 상세한 설명입니다. 

Wi-Fi AP를 Scan해서 ScanResult를 받은 후 Wi-Fi AP에 접속하려고 합니다. 
암호가 없는 공개된 AP에는 정상적으로 연결이 붙습니다. 

그러나, 암호가 들어가는 WEP나 WPA에서는 
enableNetwork() method가 정상적으로 true를 리턴하지만 
AP에 연결이 되지 않습니다. 

해결 방법은 무엇일까요? 

그런데, 환경설정에 있는 Wi-Fi 연결로는 정상적으로 연결이 잘 됩니다. 

퍼미션은 충분히 아래와 같이 준 상태입니다. 

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />


아래의 코드는 WPA 계열의 연결 AP에 접속하려는 코드입니다.  
왜 접속이 안되는 것일까요? 


private void connectWPA(ScanResult scanResult, String password)
{
        String SSID = null; 
        int networkId = -1;

        final WifiManager wifi = (WifiManager) main.getSystemService(Context.WIFI_SERVICE);
        List<WifiConfiguration> list = wifi.getConfiguredNetworks();
        
        for(WifiConfiguration wifiConfig : list)
        {
        Log.d("AP", "for loop SSID : "+wifiConfig.SSID); 
        if(wifiConfig.SSID.equals("\""+scanResult.SSID+"\""))
        {
        networkId = wifiConfig.networkId; 
        SSID = wifiConfig.SSID;          
        break;
       
        }
        
        if (SSID == null) 
        {
    WifiConfiguration config = new WifiConfiguration();
    config.BSSID = scanResult.BSSID;
    config.SSID = "\"" + scanResult.SSID + "\"";
    config.status = WifiConfiguration.Status.DISABLED;
    //config.status = WifiConfiguration.Status.ENABLED;; 
    config.priority = 40;
    config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
    config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED); 
    config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.LEAP); 
    config.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
    config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
    config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
    config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
    config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
    config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
    config.preSharedKey = "\"".concat(password).concat("\"");
        networkId = wifi.addNetwork(config);
            wifi.saveConfiguration(); 
        } 
        else
        Log.d("AP","Found : "+SSID); 
        
        boolean ok = wifi.enableNetwork(networkId, true);
        if (ok)
        {
    Log.d("AP", "OK enableNetwork "+SSID); 
        }
}


LogCat의 내용은 아래와 같으며 code는 에러없이 정상동작하였습니다. 

11-20 14:41:44.786: D/AP(19948): for loop SSID : "book"
11-20 14:41:44.786: D/AP(19948): Found : "book"
11-20 14:41:44.786: D/AP(19948): OK enableNetwork "book"