코드상으로 잠금화면을 풀었습니다.
(keyLock.disableKeyguard() 사용, manifest에 퍼미션 추가했습니다 .DISABLE_KEYGUARD)
이제 상황에 따라 풀었는 잠금화면을 다시 잠금을 걸기위해
reenableKeyguard()를 사용해서 테스트를해보니
unlock은 잘되나, lock이 되질 않습니다..
혹시 이와 관련해서 추가로 필요한 코드가 있다던지, 힌트를 주실수 있으신지요..
하루종일 이걸로 웹서치하고 책 찾아보고 있는데, 진전이 없네요.
도움 부탁드립니다.. 감사합니다.
굴다리님 감사합니다. 저도 낑낑대다 해결하고 자답 달려고 들어왔더니 또 도움을 주셨네요... 대단히 감사드립니다.
저의 문제는 인스턴스 생성에서 있었습니다..
굴다리님 코드로 예로 들자면..
생성한 인스턴스 KeyguardLock를 가지고.. disableKeyguard()를 해서 락을 걸고,
똑같이 앞서 락을 걸때 생성된 동일한 인스턴스로 reenableKeyguard()를 해야하네요.
몰랐던 건 아니지만... 이렇게 사소한것을 "당연히"라고 생각하고는 놓쳐버렸네요.
KeyguardManager km = null;
KeyguardManager.KeyguardLock keyLock = null;
위 두줄을 전역으로 잡아놓고
if(( km == null ) km = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
if( keyLock == null) keyLock = km.newKeyguardLock(KEYGUARD_SERVICE);
위 두줄은 onCreate나... 적당한 곳에 삽입해놓고
lock, unlock이 필요한곳에서 keyLock.disableKeyguard()와, keyLock.reeanbleKeyguard()를 호출해주어 해결하였습니다.
위 if문 두줄에서 포인트가 되겠지요. null일때만 인스턴스 생성을 하고 null이 아니면 인스턴스 생성을 하지 않으니
동일한 인스턴스로 락을 걸고 락을 푸는 알고리즘(?)이 되었습니다.
다시한번 끝까지 관심가져 주셔서 대단히 감사드립니다. 즐코딩하세요...^^



