안녕하세요?
현재 동영상 플레이어 관련 앱을 개발 중인데....락스크린 관련된 이벤트 체크에 대해 문제가 하나 생겨 이렇게 질문 드립니다.
동영상 플레이어의 경우 상위 API로 올라 갈수록 가급적이면 onresume / onpause에서 재생성(?) / 해지 작업이 이뤄지도록 하고 있었습니다.
특히 onresume에서 아래의 코드가 문제가 되고 있습니다.
if(keyguardManager.inKeyguardRestrictedInputMode()) {
//---별도의 intentfilter "ACTION_USER_PRESENT"를 이용해 broadcast reciver 등록
} else {
//---일반 처리 영역
}
ics까지만 해도 위 코드 즉 keyguardManager.inKeyguardRestrictedInputMode() 리턴 값이 정상적으로 전달이 되는 것에 반해
젤리빈 부터는 뭣 때문인지 keyguardManager.inKeyguardRestrictedInputMode() 리턴 값이 항상 false로 전달되는 현상이 보이고 있습니다.
API 가이드를 좀 찾아보니 keyguardManager.keyguardLock class가 deprecated 로 대체할 방법은 결국 windowmanager의 flag status를 이용하는 방법 밖에 없더라구요...
그런데 순간 반짝하고 든 생각이 결국 제가 처리하려는 방법은 락스크린이 떠 있을 경우 바로 동영상이 재생이 되면 안되기 때문에
락 해제 시점에 처리가 되었으면 하는 것이 주된 목표 입니다.
혹시 이와 관련해서 다른 방법이 있을지 조언을 구하고자 합니다.
참고로...
젤리빈 : 갤럭시 s2
ICS : 갤럭시 노트1
위 두대로 확인 중입니다.
ps : 다소 신기한 사실은....keyguardManager.inKeyguardRestrictedInputMode()가 젤리빈에서 항상 false로 리턴이 된다고 했습니다만,
그럼 재생중이던 동영상은 락스크린이 해지되지 않았더라도 재생이 되어야 할텐데, 이상하게 요녀석은 또 기다리고 있더라구요...
S2만 이런건지....아님 다른 젤리빈이 탑재된 단말기들도 다 그런건지....좀 아리송 하네요..^^;