목적은 화면 잠금/해제 앱을 만드는 것입니다.
그런데 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" 로 인식되어 입력됩니다.
잠금 앱이 이렇게 어려울줄이야
잘되는 방법 좀 알려주세요.