PowerManager.WakeLock wakeLock;
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManger.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP|PowerManager.ON_AFTER_RELEASE, "main:tag");
wakeLock.acquire();
서비스가 돌면서 특정 조건 만족시, Notification 알림 울리면서, 화면이 켜지는 프로그램 만드는 중입니다.
화면 깨우기 할 때, 위 코드로 많이들 쓰시는데,
FULL_WAKE_LOCK 이 deprecated 된 후로, 언제 사라질 지 모르기 때문에, 가급적 이 파라미터는 쓰지 않으려고 합니다.
따라서, PARTIAL_WAKE_LOCK 만 쓸 수 있는데, 이 파라미터를 주면, CPU만 돌아가게 만들고 화면은 켜주지 않는다고 나와있습니다.
심지어, 공식 문서에 보면, 화면을 켜주는 ACQUIRE_CAUSES_WAKEUP 플래그랑 같이 사용할 수 없다고 나와 있는데요.
혹시
FULL_WAKE_LOCK,
SCREEN_DIM_WAKE_LOCK,
SCREEN_BRIGHT_WAKE_LOCK
(셋 다 deprecated됨.) 쓰지 않고 화면을 켤 수 있는 방법이 있을까요?
문서에는 대안이라면서, FLAG_KEEP_SCREEN_ON 써서 아예 화면을 끄지 말아라. 라고 되어있는데, 저는 백그라운드 서비스를 돌릴거라 해당 사항이 없네요.