투케이2K

208. (AndroidStudio/android/java) 안드로이드 도즈 모드 설명 및 화이트 리스트 등록 설정 창 (settings) 이동 본문

Android

208. (AndroidStudio/android/java) 안드로이드 도즈 모드 설명 및 화이트 리스트 등록 설정 창 (settings) 이동

투케이2K 2021. 10. 9. 17:10

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : java


[소스 코드]

	/**
	 * [도즈 모드, 화이트 리스트 설명]
	 * 1. [도즈 모드] :
	 *   마시멜로우 (6.0, SDK 23) 이상 배터리 사용량 최적화를 위해 일정시간 이상 동안
	 *   화면이 꺼진 상태 및 움직임이 없는 상태 인 경우 앱 기능 사용 제한을 두는 것입니다 (일정 시간 제한은 제조사별 다름)
	 *
	 *
	 * 2. [화이트 리스트] :
	 *   간단히 설명해 배터리 최적화 정책에서 제외하는것입니다
	 *   화이트 리스트는 앱에서 활성 비활성, 사용자가 직접 활성 비활성하는 방법이 있습니다
	 *
	 *
	 * 3. [화이트 리스트 참고] :
	 *   앱에서 직접 활성 및 비활성 설정 시 퍼미션 필요 : <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
	 *   앱에서 직접 활성 및 비활성하는 경우 구글 플레이스토어 등록 시 거부 될 수 있습니다 (특정한 경우만 허용해줌)
	 * */


	public void checkWhiteList(){
		if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
			PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
			if (powerManager.isIgnoringBatteryOptimizations(getPackageName()) == false) { // [화이트 리스트 등록 안됨]
				Log.d("---", "---");
				Log.e("//===========//", "================================================");
				Log.d("", "\n" + "[A_Test_Java > checkWhiteList() 메소드 : 화이트 리스트 등록 확인 실시]");
				Log.d("", "\n" + "[상태 : "+String.valueOf("false")+"]");
				Log.e("//===========//", "================================================");
				Log.d("---", "---");

				//TODO [화이트 리스트 등록 설정창 이동 : 사용자가 직접 화이트 리스트 등록]
				Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
				//Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); // 퍼미션 필요
				//intent.setData(Uri.parse("package:" + getPackageName())); // 퍼미션 필요
				intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
				startActivity(intent);
			}
			else { // [화이트 리스트 등록 됨]
				Log.d("---", "---");
				Log.w("//===========//", "================================================");
				Log.d("", "\n" + "[A_Test_Java > checkWhiteList() 메소드 : 화이트 리스트 등록 확인 실시]");
				Log.d("", "\n" + "[상태 : "+String.valueOf("true")+"]");
				Log.w("//===========//", "================================================");
				Log.d("---", "---");
			}
		}
	}

[결과 출력]


 

반응형
Comments