투케이2K

898. (Android/Java) [targetSdk 28] 안드로이드 Q , 9버전 미만 WifiManager 자동 재연결 방지 disableNetwork 네트워크 비활성 처리 본문

Android

898. (Android/Java) [targetSdk 28] 안드로이드 Q , 9버전 미만 WifiManager 자동 재연결 방지 disableNetwork 네트워크 비활성 처리

투케이2K 2024. 11. 17. 14:00

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java

- 개발 툴 : Android Studio

- 구분 : 간단 소스

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

// TODO [WifiManager 생성 및 와이파이 기능 강제 활성]
WifiManager wifiManager = (WifiManager) mContext.getApplicationContext().getSystemService(Context.WIFI_SERVICE);

if (wifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
    wifiManager.setWifiEnabled(true);
}


// TODO [기존에 연결 된 네트워크 연결 끊기]
wifiManager.disconnect();


// TODO [이미 기존 설정에 저장 된 정보가 있는 경우 networkId 값 확인 및 나머지 네트워크 비활성 처리]
List<WifiConfiguration> wifiConfigList = wifiManager.getConfiguredNetworks();

if (wifiConfigList != null && wifiConfigList.size() > 0){ // [저장 된 값이 있는 경우]

    for (int i=0; i<wifiConfigList.size(); i++){

        WifiConfiguration getWifiConfig = wifiConfigList.get(i);

        S_Log.w("getWifiConfig", "SSID = " + String.valueOf(getWifiConfig.SSID) + " / " + "netId = " + String.valueOf(getWifiConfig.networkId));

        if (getWifiConfig.SSID.trim().contains(ssid) == true){
            addNetwork = getWifiConfig.networkId; // [저장 된 정보 확인]
        }
        else {
            wifiManager.disableNetwork(getWifiConfig.networkId); // [사전 다른 와이파이 비활성 처리]
        }

    }
}


// TODO [새로운 와이파이 재연결 수행]
boolean enableWifi = wifiManager.enableNetwork(addNetwork, true);
boolean reconnectWifi = wifiManager.reconnect();

// --------------------------------------------------------------------------------------
​

 

반응형
Comments