제가 간단한 아케이드게임을 제작중인데
게임 진행 중에 자동 화면잠금이 되지 않게 하는 방법을 찾아봤는데
자료가 없더라고요,,,, 조언좀 부탁드립니다.
onCreate 에서 아래와 같이 플래그 추가해 주시면 실행중에는 화면이 꺼지지 않게 됩니다~
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
총 6개의 WakeLock FLAG 가 있습니다.
PARTIAL_WAKE_LOCK : CPU ON, 화면은 꺼짐, 키보드 꺼짐
SCREEN_DIM_WAKE : CPU ON, 화면 어둡게, 키보드 꺼짐
SCREEN_BRIGHT_WAKE_LOCK : CPU ON, 화면 밝게, 키보드 꺼짐
FULL_WAKE_LOCK : CPU ON, 화면 밝게, 키보드 ON
추가가 가능하나 PARTIAL_WAKE_LOCK 과는 같이 써도 소용 없는 FLAG 2개
ACQUIRE_CAUSES_WAKEUP : acquire 할 때 스크린과 키보드를 켜줌으로써 중요한 통지(notification)이
왔을 때 사용자가 화면을 바로 볼 수 있도록 함.
ON_AFTER_RELEASE : WakeLock 이 릴리즈 되었을 때 유저 액티버티 타이머가 리셋 되어지고 스크린을 좀더 오래 켤 수 있고, wake lock 을 반복적으로 수행하는 사이에 발생하는 깜빡임 현상을 줄이고자 할 때 사용.
PARTIAL_WAKE_LOCK 만 Power Button 눌러도 CPU 유지되면, 그외는 Power Button 클릭시 Sleep 단계가 된다.
즉 음악이 백그라운드로 돌리려면 필요합니다..
질문자님은 화면만 커지면 된다면 럭셔리스카이 님의 방법을 사용하셔도 되겠네요~~
-----------------------------------------------------------------------------------------------------------
해당 소스 예제 입니다.
WifiManager.WifiLock wifiLock = null;
//등록
if (wifiLock == null) {
WifiManager wifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
wifiLock = wifiManager.createWifiLock("wifilock");
wifiLock.setReferenceCounted(true);
wifiLock.acquire();
}
//해제
if (wifiLock != null) {
wifiLock.release();
wifiLock = null;
}
수고하세요~



wakelock을 사용해 보세요.