배터리 사용량 최적화 권한 - baeteoli sayonglyang choejeoghwa gwonhan

  • 권한필요알림메시지확인
  • 배터리사용량최적화목록에서제외권한설정

권한 필요알림메시지확인

카카오톡을실행하면 "권한이필요합니다." 라는메시지가뜹니다.

카카오톡메시지를실시간으로 바로확인하고싶다면 "배터리사용량최적화목록에서제외"주는것이좋습니다.

배터리 사용량 최적화 권한 - baeteoli sayonglyang choejeoghwa gwonhan

배터리사용량최적화목록에서제외권한설정

[확인] 클릭합니다.

배터리 사용량 최적화 권한 - baeteoli sayonglyang choejeoghwa gwonhan

[허용] 클릭하면카카오톡앱이백그라운드에서실행되어 있어카카오톡메시지가오면바로바로알려주게됩니다. 하지만계속실행되어있으므로밧데리사용량은실행하지않을때보다 많겠죠.

배터리 사용량 최적화 권한 - baeteoli sayonglyang choejeoghwa gwonhan

배터리 최적화 제외

배터리 사용량 최적화 권한 - baeteoli sayonglyang choejeoghwa gwonhan

I-Driver를 원할하게 사용하기 위해 "배터리 최적화 예외"로 설정 하여야 합니다.

1. 그림과 같이 팝업창이 뜨면 "설정하기" 버튼을 클릭합니다.

배터리 사용량 최적화 권한 - baeteoli sayonglyang choejeoghwa gwonhan
배터리 사용량 최적화 권한 - baeteoli sayonglyang choejeoghwa gwonhan

삼성 단말기의 경우 "최적화하지 않은 앱" 목록에 추가를 해야 합니다.

1."최적화하지 않은 앱"항목 클릭후 "모든 앱"을 선택합니다.

배터리 사용량 최적화 권한 - baeteoli sayonglyang choejeoghwa gwonhan

(삼성)
배터리 사용량 최적화 권한 - baeteoli sayonglyang choejeoghwa gwonhan

(LG)

갤럭시 S5, S6, S7, S8의 경우 I-Driver를 찾아서 첫번째 그림과 같이 설정을 해제해야 합니다.

LG G5, G6의 경우 I-Driver를 찾아서 아래 그림과 같이 설정을 활성화 시켜야 합니다.

설정이 완료되었는지 확인하기 위하여 앱을 재 실행합니다.
앱을 재 실행하여 "배터리 최적화 예외" 설정 팝업창이 생성되지 않으면 정상적으로 설정이 완료.

 

안드로이드 마시멜로에서 앱이 백그라운드로 처리하는 작업을 막아 배터리 소모를 줄이는 최적화 기능이 들어있습니다. 배터리 소모를 줄이는 것도 좋지만 앱의 작동에 문제가 되는 경우를 흔치 않게 보여지고 있습니다. 예를 들어 스마트와치와 연결하는 구글의 안드로이드 웨어의 경우 배터리 최적화모드로 인해 블루투스간의 페이링 연결이 끊겨버리는 문제가 발생하게됩니다.

구글도 이러한 문제로 인해 최근 배터리 최적화 목록에 안드로이드 웨어앱을 무시할 수 있는 간편한 설정기능을 넣어두었으며 설정하지 않으면 지속적으로 나타나 설정해야 연결이 끊기지 않는다는 안내를 지속적으로 하게끔 업데이트 되었습니다.

일반적으로 구글 레퍼런스폰인경우 설정 > 배터리 > 배터리 최적화에서 설정을 해야하며, 제조사별로 메뉴위치나 설정 이름이 달라서 사용자들이 직접 설정하기는 힘든 부분입니다. 그렇기 때문에 안드로이드웨어앱은 자체적으로 다이얼로그를 통해 설정기능을 넣었습니다.


배터리 사용량 최적화 권한 - baeteoli sayonglyang choejeoghwa gwonhan

어떻게?

안드로이드 API 23에 배터리 최적화를 앱에서 직접제어 할 수 있는 퍼미션이 추가되었습니다.

android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

해당 퍼미션 권한이 있으면 배터리 최적화설정을 해당앱의 권한으로 직접 설정 할 수 있다. 설정하는 방법은 Package이름과 설정 액션을 보내면됩니다.

API Level 23에서 추가된 PowerManager.isIgnoringBatteryOptimizations()를 이용하여 해당앱이 배터리 최적화 상태인가를 확인 할 수 있습니다. 그리고 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 액션을 이용하여 배터리 최적화를 무시할 수도 있습니다. 반대로 최적화 모드를 수행하기 위해서는 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 액션을 사용하면됩니다.

예제

Intent i = new Intent();

String packageName = getPackageName();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

if (pm.isIgnoringBatteryOptimizations(packageName){
 i.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
} else {
 i.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
 i.setData(Uri.parse("package:" + packageName));
}
startActivity(i);

무시하는 액션을 수행하면 다이얼로그를 통해 사용자가 직접 배터리 최적화 무시를 할 수 있습니다.
배터리 최적화 모드로 앱의 정상작동에 문제가 된다면 앱에서 직접 배터리 최적화를 무시할 수 있도록 액션을 요청하여 다이얼로그를 통해 안내해주는 것도 하나의 방법이 될것 같습니다. 단, 퍼미션 추가로 부담은 있겠지만 앱이 정상작동하지 않는것 보다는 감수해볼만한 사항입니다.

 

   Android VectorDrawables jCenter로 안드로이드 라이브러리 간단하게 배포하기 