투케이2K

414. (android/java) [android 12 / target 31] ConnectivityManager Network 네트워크 연결 상태 체크 실시 - 타겟 31 대응 본문

Android

414. (android/java) [android 12 / target 31] ConnectivityManager Network 네트워크 연결 상태 체크 실시 - 타겟 31 대응

투케이2K 2022. 11. 24. 17:22

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[AndroidManifest.xml : 소스 코드]

    <!--  네트워크 연결 상태 체크 : 퍼미션 설정 선언  -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-feature android:name="android.hardware.location.network"/>
 

[Java : 소스 코드]

    // TODO [현재 연결된 네트워크 상태 확인 메소드]
    public static Boolean getWhatOfNetwork(Context mContext) {

        /**
         * // -----------------------------------------
         * [getWhatOfNetwork 메소드 설명]
         * // -----------------------------------------
         * 1. 현재 사용자 모바일 디바이스 기기 네트워크 연결 상태 체크
         * // -----------------------------------------
         * 2. 사전 퍼미션 설정 : <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
         * // -----------------------------------------
         * 3. 호출 방법 : if (C_StateCheck.getWhatOfNetwork(A_Main.this) == true) { } else { }
         * // -----------------------------------------
         * */

        try {
            ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
            if (activeNetwork != null) {
                if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
                    Log.i("---", "---");
                    Log.d("//===========//", "================================================");
                    Log.i("", "\n" + "[C_StateCheck >> getWhatOfNetwork() :: 현재 사용중인 네트워크 상태 확인 실시]");
                    Log.i("", "\n" + "[" + "연결 상태 :: " + String.valueOf("와이파이") + "]");
                    Log.d("//===========//", "================================================");
                    Log.i("---", "---");
                    return true;
                } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
                    Log.i("---", "---");
                    Log.d("//===========//", "================================================");
                    Log.i("", "\n" + "[C_StateCheck >> getWhatOfNetwork() :: 현재 사용중인 네트워크 상태 확인 실시]");
                    Log.i("", "\n" + "[" + "연결 상태 :: " + String.valueOf("모바일") + "]");
                    Log.d("//===========//", "================================================");
                    Log.i("---", "---");
                    return true;
                } else {
                    Log.i("---", "---");
                    Log.d("//===========//", "================================================");
                    Log.i("", "\n" + "[C_StateCheck >> getWhatOfNetwork() :: 현재 사용중인 네트워크 상태 확인 실시]");
                    Log.i("", "\n" + "[" + "연결 상태 :: " + String.valueOf("없음") + "]");
                    Log.d("//===========//", "================================================");
                    Log.i("---", "---");
                    return false;
                }
            } else {
                Log.i("---", "---");
                Log.e("//===========//", "================================================");
                Log.i("", "\n" + "[C_StateCheck >> getWhatOfNetwork() :: 현재 사용중인 네트워크 상태 확인 에러]");
                Log.i("", "\n" + "[" + "error [에러] :: " + "NetworkInfo == null" + "]");
                Log.i("", "\n" + "[" + "로 직 :: " + "return true 통과 로직 허용" + "]");
                Log.e("//===========//", "================================================");
                Log.i("---", "---");
                return true;
            }
        } catch (Exception e) {
            //e.printStackTrace();
            Log.i("---", "---");
            Log.e("//===========//", "================================================");
            Log.i("", "\n" + "[C_StateCheck >> getWhatOfNetwork() :: 현재 사용중인 네트워크 상태 확인 실시]");
            Log.i("", "\n" + "[" + "catch [에러] :: " + String.valueOf(e.getMessage()) + "]");
            Log.i("", "\n" + "[" + "로 직 :: " + "return true 통과 로직 허용" + "]");
            Log.e("//===========//", "================================================");
            Log.i("---", "---");
            return true;
        }
    }
 

[결과 출력]

 

 
반응형
Comments