App 개발 : 잠금화면- LockScreen 위에 Activity 띄우기

2012. 5. 17. 19:31프로그래밍/안드로이드

일정 시간 사용 하지 않으면 화면이 잠기고, 잠근버튼을 눌렀을 때도 이와 동일 하다.

화면이 잠기면 다시 켰을 때 잠금화면이 걸리는데 이 잠금화면 위에 내가 띄우고 싶은 액티비티를 띄운 다음 잠금화면을 해제 시키면 사용자는 화면에 뜬 액티비티를 잠금화면으로 생각하게 될 것이다.


Activity 내의 onCreate 에 

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|

                WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|

                WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

이렇게 추가 해보자.

FLAG_SHOW_WHEN_LOCKED : 잠금화면 보다 먼저 작성한 액티비티를 띄워준다.

FLAG_KEEP_SCREEN_ON : SCREEN_On 상태를 유지한다.

FLAG_DISMISS_KEYGUARD : 잠금화면을 해제한다.

여기서 FLAG_DISMISS_KEYGUARD 는 약간 문제가 있다. 특정 기기에서는 정상 동작 하지 않는다. 

그렇기에  FLAG_DISMISS_KEYGUARD 대신 KeyguardManager 를 사용 할 생각이다.