투케이2K

946. (Android/Java) [유틸 파일] 안드로이드 wifiEnabled : 와이파이 활성 및 비활성 수행 본문

Android

946. (Android/Java) [유틸 파일] 안드로이드 wifiEnabled : 와이파이 활성 및 비활성 수행

투케이2K 2025. 2. 10. 21:56

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

 

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

- 언어 : Java / Kotlin

- 개발 툴 : AndroidStudio

- 기술 구분 : 와이파이 / wifiEnabled

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






// --------------------------------------------------------------------------------------
[사전) 필요 설정]
// --------------------------------------------------------------------------------------

[AndroidManifest.xml 파일 필요 퍼미션]

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

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





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

    // --------------------------------------------------------------
    // TODO [SEARCH FAST] : wifiEnabled : 와이파이 활성 및 비활성 수행
    // --------------------------------------------------------------
    public static void wifiEnabled(Context mContext, boolean enabled) {

        /**
         * // -----------------------------------------
         * [wifiEnabled 메소드 설명]
         * // -----------------------------------------
         * 1. 와이파이 활성 및 비활성 수행
         * // -----------------------------------------
         * 2. 호출 방식 :
         *
         * if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P){
         *    C_Wifi_Ap_Module.wifiEnabled(A_Webview.this, false); // true = 활성 / false = 비활성
         * }
         * // -----------------------------------------
         * 3. 참고 : 안드로이드 10 Q (29) 에서는 항상 false 반환으로 안드로이드 9 P (29) 까지 제한 사용
         * // -----------------------------------------
         * */

        // [로직 처리 실시]
        try {

            // ===============================================================
            S_Log._D_(ACTIVITY_NAME + " :: wifiEnabled :: 와이파이 활성 및 비활성 수행", new String[]{"INPUT :: " + String.valueOf(enabled)});
            // ===============================================================

            if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P){

                // [WifiManager 객체 생성]
                WifiManager wifiManager = (WifiManager) mContext.getApplicationContext().getSystemService(Context.WIFI_SERVICE);

                // [와이파이 활성 및 비활성 수행 실시]
                if (enabled == true){ // [활성 상태]

                    if (wifiManager.isWifiEnabled() == true){
                        S_Log.w("WIFI_ENABLED", "와이파이 이미 활성 상태 >> 변함 없음 확인");
                    }
                    else {
                        S_Log.e("WIFI_ENABLED", "와이파이 비활성 상태 >> 와이파이 활성 변경");

                        wifiManager.setWifiEnabled(enabled);
                    }
                }
                else { // [비활성 상태]

                    if (wifiManager.isWifiEnabled() == true){
                        S_Log.e("WIFI_ENABLED", "와이파이 활성 상태 >> 와이파이 비활성 변경");

                        wifiManager.setWifiEnabled(enabled);
                    }
                    else {
                        S_Log.w("WIFI_ENABLED", "와이파이 이미 비활성 상태 >> 변함 없음 확인");
                    }

                }

            }
            else {
                S_Log._E_(ACTIVITY_NAME + " :: wifiEnabled :: 와이파이 활성 및 비활성 실패", new String[]{"Error :: 안드로이드 OS 9 이상 기기 메소드 Deprecated 수행 불가능"});
            }

        } catch (final Exception e){
            S_Log._printStackTrace_(mContext, S_FinalData.LOG_BUG_STATE, null, e);
        }
    }

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

 

반응형
Comments