Notice
Recent Posts
Recent Comments
Link
투케이2K
427. (android/java) [android 12 / target 31] [유틸 파일] getNetworkConnect - 현재 연결된 네트워크 상태 확인 실시 본문
Android
427. (android/java) [android 12 / target 31] [유틸 파일] getNetworkConnect - 현재 연결된 네트워크 상태 확인 실시
투케이2K 2022. 12. 15. 23:19[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
// TODO [현재 연결된 네트워크 상태 확인 메소드 : 타겟 31 대응]
public static Boolean getNetworkConnect(Context mContext) {
/**
* // -----------------------------------------
* [getNetworkConnect 메소드 설명]
* // -----------------------------------------
* 1. 현재 사용자 모바일 디바이스 기기 네트워크 연결 상태 체크
* // -----------------------------------------
* 2. 사전 퍼미션 설정 : <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
* // -----------------------------------------
* 3. 호출 방법 : if (C_StateCheck.getNetworkConnect(A_Main.this) == true) { } else { }
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
boolean returnData = true;
String networkName = "";
try {
// [ConnectivityManager 생성]
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
// [버전 분기 처리]
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // [마시멜로우 이상]
NetworkCapabilities networkCapabilities = cm.getNetworkCapabilities(cm.getActiveNetwork());
if (networkCapabilities != null){
if(networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)){
networkName = "[capabilities] WIFI";
}
else if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)){
networkName = "[capabilities] MOBILE";
}
else {
returnData = false;
networkName = "[capabilities] network is null";
}
}
else {
returnData = false;
networkName = "[ERROR] networkCapabilities is null";
}
}
else { // [마시멜로우 미만]
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null) {
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
networkName = "[activeNetwork] WIFI";
} else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
networkName = "[activeNetwork] MOBILE";
} else {
returnData = false;
networkName = "[activeNetwork] network is null";
}
} else {
returnData = false;
networkName = "[ERROR] activeNetwork is null";
}
}
}
catch (Exception e) {
e.printStackTrace();
}
// [로그 출력 실시]
Log.i("---","---" + "\n");
Log.d("//===========//","================================================");
Log.i("","\n"+"[C_StateCheck >> getNetworkConnect() :: 현재 연결된 네트워크 상태 확인]");
Log.i("","\n"+"-----------------------------------------");
Log.i("","\n"+"[NETWORK :: "+ networkName +"]");
Log.i("","\n"+"-----------------------------------------");
Log.i("","\n"+"[RETURN :: "+ returnData +"]");
Log.d("//===========//","================================================");
Log.i("---","---" + "\n");
// [리턴 반환 실시]
return returnData;
}
[결과 출력]
반응형
'Android' 카테고리의 다른 글
Comments