Android

[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);
}

[참고]

안드로이드 개발자 문서 : 기기를 켜진 상태로 유지

Leave a Reply

error: Content is protected !!