Notice
Recent Posts
Recent Comments
Link
투케이2K
475. (kotlin/코틀린) [유틸 파일] getNetworkDataRestrictState : 앱 데이터 절약 모드 활성 상태 확인 본문
Kotlin
475. (kotlin/코틀린) [유틸 파일] getNetworkDataRestrictState : 앱 데이터 절약 모드 활성 상태 확인
투케이2K 2024. 4. 9. 20:22[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [getNetworkDataRestrictState] : 앱 데이터 절약 모드 활성 상태 확인
// -----------------------------------------------------------------------------------------
fun getNetworkDataRestrictState(mContext: Context): Boolean {
/**
* // -----------------------------------------
* [getNetworkDataRestrictState 메소드 설명]
* // -----------------------------------------
* 1. 앱 데이터 절약 모드 활성 상태 확인
* // -----------------------------------------
* 2. 호출 방법 :
*
* C_StateCheck.getNetworkDataRestrictState(A_Main.this);
* // -----------------------------------------
* 3. 리턴 데이터 :
*
* 휴대폰 설정에서 데이터 절약 모드가 활성화 된 경우 true / 아니면 false
* // -----------------------------------------
*/
// [리턴 변수 선언 실시]
var returnData = false
var M_LOG = ""
// [로직 처리 실시]
try {
// [ConnectivityManager 선언]
val connMgr = mContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
// [대규모 전송을 피해야 하는 경우 확인]
if (connMgr.isActiveNetworkMetered) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
when (connMgr.restrictBackgroundStatus) {
ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED -> {
// [데이터 절약 모드 활성]
returnData = true
M_LOG = "Success : RESTRICT_BACKGROUND_STATUS_ENABLED"
}
ConnectivityManager.RESTRICT_BACKGROUND_STATUS_WHITELISTED ->
// [앱이 데이터 세이버를 우회하도록 허용]
M_LOG = "Success : RESTRICT_BACKGROUND_STATUS_WHITELISTED"
ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED ->
// [데이터 절약 모드 비활성]
M_LOG = "Success : RESTRICT_BACKGROUND_STATUS_DISABLED"
else -> M_LOG = "Error : Status Check Default"
}
} else {
M_LOG = "Error : Device Os Version Low"
}
} else {
// [대규모 전송 피하지 않음]
M_LOG = "Success : Device Not on a Metered Network"
}
} catch (e: Exception) {
e.printStackTrace()
M_LOG = "Exception : " + e.message.toString()
}
// [로그 출력 실시]
//*
// ===============================================================
S_Log._F_(mContext, "앱 데이터 절약 모드 활성 상태 확인", arrayOf(
"M_LOG :: $M_LOG",
"RETURN :: $returnData"
))
// ===============================================================
// */
// [리턴 반환 실시]
return returnData
}
반응형
'Kotlin' 카테고리의 다른 글
Comments