마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

카카오톡 형태의 알림팝업 문의드려요.

0 추천
원래 sleep 모드에서는 화면에 락스크린이나(키가드) 가 일반적으로

먼저 화면을 점유하고, 그 밑에 우리의 activity 에서 만든 화면이 뜨는게 일반적이잖아요,

그런데 항상 카카오톡 처럼 lock 스크린이 있어도 그 위에 뜨는 알림 팝업을 이용해서

사용자한테 수신된 메세지를 보여주고 싶은데, 아무리 찾아봐도 딱 원하는 솔루션이 없네요.

KeyguardManager 을 이용하는 방법으로는 락스크린을 해제시켜 버리고 그 이에 뜨는 것에는 성공

했습니다. 하지만 lockscreen 위로 뜨는 방법은 없을까요? 그리고 가급적 keyguardManager  를

쓰고싶지 않은것이 permission 을 추가하는데 부담이 있는 사용자가 많은 앱이라서요.

이런 패턴은 많이 쓰지지 않나 생각했는데, 생각보다 딱 맞는 솔루션이 없네요.

고수분들 답변좀 주시면 감사하겠습니다.
시루떡 (120 포인트) 님이 2013년 9월 24일 질문

2개의 답변

+1 추천
aucd29 (218,390 포인트) 님이 2013년 9월 25일 답변
0 추천
별도의 액티비티를 하나 만드셔야 합니다.
그 액티비티의 용도는 화면을 깨우는 용도 입니다.
서비스에서 바로 화면을 깨우지 못합니다.
그래서 화면을 깨울 수 있는 액티비티를 startActivity 메소드로 실행해야 합니다.

해당 액티비티에서는
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

이렇게 설정해 주시면 자연스럽게 락화면 위에 올라오면서
화면을 깨웁니다.

 

WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD 굳이 필요없습니다.

이 플래그를 설정하면 KeyguardManager로 락스크린을 해제하는 효과를 보여줍니다.

그래서 저는 이 플래그를 사용하진 않는데 일단 알고는 계시라고 넣었습니다.
원조안드로이드 (58,190 포인트) 님이 2013년 9월 25일 답변
...