[android,안드로이드] 앱 화면이 켜진 상태로 유지하는 방법(WakeLock 미사용)
앱 화면이 켜진 상태 유지 방법
사용자 요구에 따라 앱이 실행 되었을 때 , 휴대폰 화면이 켜진상태로 유지를 해야할 때가 있다. PowerManager 클래스와 WakeLock 클래스를 사용하여 앱을 깨울 수 있지만, 배터리 수명에 심각한 영향을 끼칠수 있다고 하여 사용하지 않고 있다. 다른 방법이 있기 때문이며, 개발자 문서에서도 이 방법을 추천하고 있다. FLAG_TURN_SCREEN_ON 플래그 와 FLAG_KEEP_SCREEN_ON 플래그를 사용하면 된다.
코드는 다음과 같다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}
위 코드 처럼하면 앱 실행 후 화면이 켜진상태로 유지할 수 있다. 휴대폰이 잠금화면인 경우는 처리되지않는다. 즉, 잠금화면에서는 화면도 보이지 않으며, 켜지지 않는다. 그래서 FLAG_SHOW_WHEN_LOCKED 플래그를 추가하여 잠금화면에서도 앱 화면을 노출할 수 있다. 하지만 앱에 광고가 삽입되어있다면, 구글 개발자 정책 위반 중에 잠금화면에서 수익창출에 위배된다. FLAG_SHOW_WHEN_LOCKED 플래그를 추가 후 마켓에 등록하면 정상적으로 올라갈 수도 있지만 몇일 뒤 마켓에서 삭제될 확률이 거의 100%이니 주의해야한다.
잠금화면에 광고가 없다면 다음 코드처럼 사용하자
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}
[참고]