투케이2K

35. (AndroidStudio/android/java) 현재 사용자 모바일에 연결된 네트워크 상태 확인 - ConnectivityManager, NetworkInfo 사용 본문

Android

35. (AndroidStudio/android/java) 현재 사용자 모바일에 연결된 네트워크 상태 확인 - ConnectivityManager, NetworkInfo 사용

투케이2K 2021. 1. 28. 12:05

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : AndroidStudio

개발 언어 : java

/* =========================== */

/* =========================== */

[소스 코드]

 

//================== [AndroidManifest.xml 네트워크 연결 상태 확인 퍼미션] ==================
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>



//================== [네트워크 상태 확인 위한 전역 변수 선언 실시] ==================
public static final String WIFI_STATE = "WIFE";
public static final String MOBILE_STATE = "MOBILE";
public static final String NONE_STATE = "NONE";



//================== [현재 연결된 네트워크 상태 확인 메소드 호출] ==================
String networkState = getNetworkConnectState(); //TODO 네트워크 연결 상태 확인 메소드 호출

if(networkState.equals(WIFI_STATE)){
	Log.d("---","---");
	Log.w("//===========//","================================================");
	Log.d("","\n"+"[현재 연결된 네트워크 : "+String.valueOf("와이파이")+"]");
	Log.w("//===========//","================================================");
	Log.d("---","---");
}
else if(networkState.equals(MOBILE_STATE)){
	Log.d("---","---");
	Log.w("//===========//","================================================");
	Log.d("","\n"+"[현재 연결된 네트워크 : "+String.valueOf("모바일")+"]");
	Log.w("//===========//","================================================");
	Log.d("---","---");
}
else{
	Log.d("---","---");
	Log.e("//===========//","================================================");
	Log.d("","\n"+"[현재 연결된 네트워크 : "+String.valueOf("없음")+"]");
	Log.e("//===========//","================================================");
	Log.d("---","---");
}



//================== [현재 연결된 네트워크 상태 확인 메소드] ==================
public String getNetworkConnectState(){
	try {
		Log.d("---","---");
		Log.d("//===========//","================================================");
		Log.d("","\n"+"[A_Network > getNetworkConnectState() 메소드 : 현재 사용 중인 네트워크 상태 확인 실시]");
		Log.d("//===========//","================================================");
		Log.d("---","---");
		/**
		 * [확인 방법]
		 * 1. 네트워크 상태 권한을 획득 실시 - AndroidManifest.xml : <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
		 * 2. ConnectivityManager 객체를 사용해 현재 연결된 네트워크 상태 확인 실시
		 */
		ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
		if (activeNetwork != null) {
			if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
				return WIFI_STATE;
			}
			else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
				return MOBILE_STATE;
			}
		}
	}
	catch (Exception e){
		e.printStackTrace();
	}
	return NONE_STATE;
}

/* =========================== */

/* =========================== */

[결과 출력]

/* =========================== */

/* =========================== */

[요약 설명]

* 1. 네트워크 상태 권한을 획득 실시 - AndroidManifest.xml : <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

* 2. ConnectivityManager 객체를 사용해 현재 연결된 네트워크 상태 확인 실시

/* =========================== */

반응형
Comments