Notice
Recent Posts
Recent Comments
Link
투케이2K
767. (Android/Java) [유틸 파일] getNetworkDataRestrictState : 앱 데이터 절약 모드 활성 상태 확인 본문
Android
767. (Android/Java) [유틸 파일] getNetworkDataRestrictState : 앱 데이터 절약 모드 활성 상태 확인
투케이2K 2024. 4. 9. 20:14[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [getNetworkDataRestrictState] : 앱 데이터 절약 모드 활성 상태 확인
// -----------------------------------------------------------------------------------------
public static Boolean getNetworkDataRestrictState(Context mContext){
/**
* // -----------------------------------------
* [getNetworkDataRestrictState 메소드 설명]
* // -----------------------------------------
* 1. 앱 데이터 절약 모드 활성 상태 확인
* // -----------------------------------------
* 2. 호출 방법 :
*
* C_StateCheck.getNetworkDataRestrictState(A_Main.this);
* // -----------------------------------------
* 3. 리턴 데이터 :
*
* 휴대폰 설정에서 데이터 절약 모드가 활성화 된 경우 true / 아니면 false
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
boolean returnData = false;
String M_LOG = "";
// [로직 처리 실시]
try {
// [ConnectivityManager 선언]
ConnectivityManager connMgr = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
// [대규모 전송을 피해야 하는 경우 확인]
if (connMgr.isActiveNetworkMetered()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
switch (connMgr.getRestrictBackgroundStatus()) {
case RESTRICT_BACKGROUND_STATUS_ENABLED:
// [데이터 절약 모드 활성]
returnData = true;
M_LOG = "Success : RESTRICT_BACKGROUND_STATUS_ENABLED";
break;
case RESTRICT_BACKGROUND_STATUS_WHITELISTED:
// [앱이 데이터 세이버를 우회하도록 허용]
M_LOG = "Success : RESTRICT_BACKGROUND_STATUS_WHITELISTED";
break;
case RESTRICT_BACKGROUND_STATUS_DISABLED:
// [데이터 절약 모드 비활성]
M_LOG = "Success : RESTRICT_BACKGROUND_STATUS_DISABLED";
break;
default:
M_LOG = "Error : Status Check Default";
break;
}
}
else {
M_LOG = "Error : Device Os Version Low";
}
} else {
// [대규모 전송 피하지 않음]
M_LOG = "Success : Device Not on a Metered Network";
}
}
catch (Exception e){
e.printStackTrace();
M_LOG = "Exception : " + String.valueOf(e.getMessage());
}
// [로그 출력 실시]
//*
// ===============================================================
S_Log._F_(mContext, "앱 데이터 절약 모드 활성 상태 확인", new String[]{
"M_LOG :: " + String.valueOf(M_LOG),
"RETURN :: " + String.valueOf(returnData)
});
// ===============================================================
// */
// [리턴 반환 실시]
return returnData;
}
[결과 출력]
W///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.C_StateCheck.getNetworkDataRestrictState(C_StateCheck.java:1434)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-04-09 09:18:13 화요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 앱 데이터 절약 모드 활성 상태 확인]
I/: ----------------------------------------------------
I/: [LOG :: M_LOG :: Success : RESTRICT_BACKGROUND_STATUS_ENABLED]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: true]
W///===========//: ================================================
반응형
'Android' 카테고리의 다른 글
Comments