[android] 전원 관리 권한

안드로이드 앱을 개발하다보면 배터리 수명을 연장하거나 효율적으로 에너지를 관리하기 위해 전원 관리 기능을 사용해야 할 때가 있습니다. 하지만 안드로이드 6.0 (마시멜로)부터는 일부 기능에 접근할 때 전원 관리 권한을 요청해야 합니다. 이 블로그 포스트에서는 전원 관리 권한을 요청하는 방법에 대해 알아보겠습니다.

전원 관리 권한이란?

앱이 배터리 사용을 관리하거나 기기를 수면 모드로 전환하는 등의 작업을 수행하기 위해서는 전원 관리 권한이 필요합니다. 이 권한을 부여받지 않은 앱은 해당 기능을 사용할 수 없습니다.

전원 관리 권한 요청하기

전원 관리 권한을 요청하려면 AndroidManifest.xml 파일에 권한을 추가해야 합니다. 다음은 배터리 최적화를 사용하지 않도록 사용자에게 요청하는 예시 코드입니다.

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>

또한 사용자에게 권한을 요청할 때에는 다이얼로그를 통해 사용자에게 설명을 제공해야 합니다.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    Intent intent = new Intent();
    intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
    intent.setData(Uri.parse("package:" + getContext().getPackageName()));
    startActivity(intent);
}

요약

전원 관리 권한을 요청하는 방법을 알아보았습니다. 이를 통해 배터리 수명을 연장하고 효율적으로 에너지를 관리할 수 있는 기능을 개발할 수 있습니다.

위의 코드는 안드로이드 6.0 (마시멜로)부터 적용되는 내용이므로 해당 버전 이상의 디바이스에서 테스트해보시기를 권장합니다.

관련 자료: Android Developers - Requesting Permissions at Run Time