Wi-Fi 상태는 백업 및 복구 코드
// 멤버변수
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);
}
}
}