Lock하는 어플을 만드는데 작동이 되다 말다 합니다.

정확히 패턴을 못찾겠는데요.


멤버변수로 선어했구요

KeyguardManager km;

KeyguardManager.KeyguardLock kmlock;


onCreate에서 

        if(km == null){

        km = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);//Context.KEYGUARD_SERVICE

        }

    if(kmlock == null){

    // kmlock = km.newKeyguardLock(KEYGUARD_SERVICE);

    kmlock = km.newKeyguardLock("DEV_KEYGARD");

     }



버튼두개에 

    Button.OnClickListener btnClick = new View.OnClickListener() {

    public void onClick(View v){

    if( v.getId() == R.id.btn_on ){

    kmlock.disableKeyguard(); //lock

    }else if( v.getId() == R.id.btn_off ){

    kmlock.reenableKeyguard(); //unlock

    }

    getStatus();

    }

};


    private void getStatus(){

        txt.setText("상태 : "+km.inKeyguardRestrictedInputMode());

    }

    

위처럼 정리해서 작성했는데 

검색을 해보니깐 kmlock.disableKeyguard() 호출후에 작업이 제대로 안된다는 글이 많던데요.

현재 No Lock이 마켓에서 다운받아져서 깔려있는데

이 어플을 테스트하면 다른 어플이랑 쫑이 나는지 대체 작업이 제대로 되질 않습니다.


kmlock = km.newKeyguardLock(KEYGUARD_SERVICE); 

를 호출시에 위 String 인자는 내맘대로 넣어도 되는건지도 궁금합니다. 위처럼 상수를 쓰면 다른Lock어플 작동이 안되더라고요

km.inKeyguardRestrictedInputMode() 역시 화면 잠금 풀기 설정후 재 호출해도 값이 변하지 않더군요.

현재 상황이 총체적 난관에 빠졌습니다. ㅠ,ㅠ

화면 잠금 풀기 만들기가 이렇게 어려울줄이야 ㅠ,ㅠ


뭐가 문제인가요 검색 신나게 하고있는데 차이점을 못찾겠는데 에러가 나니...미칠노릇인데요...

에러 로그는 (라인수는 좀 다르지만)


D/disableKeyguard(23472): disableKeyguard token:android.os.Binder@40513840 tag:keyguard

D/disableKeyguard(23472): print stack dump...

D/disableKeyguard(23472): java.lang.Throwable:  stack dump

D/disableKeyguard(23472):       at android.app.KeyguardManager$KeyguardLock.disableKeyguard(KeyguardManager.java:75)

D/disableKeyguard(23472):       at dev.keyguard.Main$1.onClick(Main.java:53)

D/disableKeyguard(23472):       at android.view.View.performClick(View.java:2538)

D/disableKeyguard(23472):       at android.view.View$PerformClick.run(View.java:9152)

D/disableKeyguard(23472):       at android.os.Handler.handleCallback(Handler.java:587)

D/disableKeyguard(23472):       at android.os.Handler.dispatchMessage(Handler.java:92)

D/disableKeyguard(23472):       at android.os.Looper.loop(Looper.java:123)

D/disableKeyguard(23472):       at android.app.ActivityThread.main(ActivityThread.java:3691)

D/disableKeyguard(23472):       at java.lang.reflect.Method.invokeNative(Native Method)

D/disableKeyguard(23472):       at java.lang.reflect.Method.invoke(Method.java:507)

D/disableKeyguard(23472):       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)

D/disableKeyguard(23472):       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)

D/disableKeyguard(23472):       at dalvik.system.NativeStart.main(Native Method)

D/KeyguardViewMediator( 2999): setKeyguardEnabled(false)









왜그런건지 이해를 못하겠네요.