안드로이드

Wi-Fi 상태는 백업 및 복구 코드

raulyo 2012. 11. 9. 10:23

// 멤버변수

       List<WifiConfiguration> mWiFiConfigs = null;

       WifiInfo mCurWifiInfo = null;

      

// 백업

       private void backupWiFiState(){

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

 

// 저장된 커넥션 가능 목록을 백업한다.

             mWiFiConfigs = wifiManager.getConfiguredNetworks();

             // 현재 커넥션을 백업한다.

             mCurWifiInfo = wifiManager.getConnectionInfo();

            

             // 저장된 커넥션 목록을 제거한다.

             if(mWiFiConfigs != null){

                    for(WifiConfiguration wc : mWiFiConfigs){

                           //Log.d(TAG, "backupWiFiState.wc SSID=" + wc.SSID + ", networkId=" + wc.networkId);

                           wifiManager.removeNetwork(wc.networkId);

                    }

             }

            

             // 커넥션을 끊는다.

             if(mCurWifiInfo != null){

                   //Log.d(TAG, "backupWiFiState.mCurWifiInfo SSID=" + mCurWifiInfo.getSSID() + ", networkId=" + mCurWifiInfo.getNetworkId());

                    wifiManager.disconnect();

             }

            

       }

 

// 복구

       private void recoveryWiFiState(){

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

 

// 커넥션 목록을 복구한다.

             if(mWiFiConfigs != null){

                                        for(WifiConfiguration wc : mWiFiConfigs){

                           //Log.d(TAG, "recoveryWiFiState.wc SSID=" + wc.SSID + ", networkId=" + wc.networkId);

                           wifiManager.addNetwork(wc);

                    }

             }

            

// 커넥션을 복구한다.

             if(mCurWifiInfo != null){

                    if(mCurWifiInfo.getNetworkId() != -1){

                           boolean bRet = wifiManager.enableNetwork(mCurWifiInfo.getNetworkId(), true);

                           //Log.d(TAG, "recoveryWiFiState.enableNetwork netId=" + mCurWifiInfo.getNetworkId() + ", ret=" + bRet);

                    }

             }

       }