목적은 화면 잠금/해제 앱을 만드는 것입니다.

그런데 KeyguardManager 를 통해 화면 잠금앱이 잘 작동을 안합니다.

최대한 소스를 줄여서 아래처럼 테스트 해봤습니다.



public class Main extends Activity {


    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        

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

     KeyguardManager.KeyguardLock kmlock = km.newKeyguardLock(KEYGUARD_SERVICE);

    

     //kmlock.disableKeyguard();

     kmlock.reenableKeyguard();

    

     Log.d("DEV","Status : "+km.inKeyguardRestrictedInputMode());

    }


}



원래 예상은 아래 볼드 줄의 기능에 따라 화면 잠금앱이 활성 비활성 되는것으로 예상되었으나

전혀 먹히지 않네요

갤럭시S2모델에 OS버전이 2.3.3 을 쓰는 저는 작동을 안하는 이유를 찾지 못했습니다.

소스는 죄다 아래처럼 기술되어있던데 작동을 하지 않는 이유를 모르겠습니다.

물론 아래처럼 퍼미션 들어 있구요

    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

    <uses-permission android:name="android.permission.ENABLE_KEYGUARD" />


아래 소스를 작동하게되면 이미 설치된 락해제하는 앱이 제대로 작동을 안하더군요.

좀더 의심스러운건

km.newKeyguardLock("이부분에 넣는 스트링"); 


인터넷 검색 결과 제각각이던데요 그값의 작동의미를 모르겠습니다.

A라는 락해제앱이 tag1를 넣었고

B라는 다른 락해제앱이 tag2 라는 값을 넣는다고하면 

A가 만든 락은 B가 해제가 안된다는 의미인지 대체 저 인자값의 스트링이 의미가 뭔지 궁금도합니다.


현재 소스에서는 KEYGUARD_SERVICE 값은 "keyguard" 로 인식되어 입력됩니다.

잠금 앱이 이렇게 어려울줄이야 

잘되는 방법 좀 알려주세요.