DevicePolicyManager 의 lockNow(); 메소드의 의미가 뭔가요?
KeyguardManager 를 가지고 잠금앱을 개발하다 하도 안되서
찾은 방법이 DevicePolicyManager 를 사용하려는데요
DevicePolicyManager 클래스에서 사용전에 해당 사항에 대해서
아래와같이 장치 관리자 앱으로 승인처리를 하였습니다.
Intent localIntent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
localIntent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, localCompName);
localIntent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"need to active");
startActivityForResult(localIntent, 1);
finish();
그후 아래코드처럼 관리자 승인후 안쪽에 lockNow(); 함수를 타게 되는데
DevicePolicyManager localDCM = (DevicePolicyManager)getSystemService("device_policy");
ComponentName localCompName = new ComponentName(this, AdminReceiver.class);
if (localDCM.isAdminActive(localCompName))
{
localDCM.lockNow(); //강제로 Lock걸기
finish();
}
제가 예상한건 핸드폰에 비활성화된 사용자의 잠금설정(비밀번호 또는 패턴)이 활성화 되는것으로 예상했습니다.
즉 제가 패턴으로 화면잠금 설정을 해놓은걸 비활성화 시키고 localDCM.lockNow(); 를 호출하면
그 패턴 잠금이 활성화 된다고 생각한거죠.ㅠ,ㅠ
그런데 현상은 localDCM.lockNow(); 를 호출하면 화면이 꺼지고 그냥 핸드폰 화면 꺼짐(전원OFF말고요) .
그냥 일반적으로 우리가 보고 끄는 듯한 현상이 나옵니다.
즉 옆에 hold다시 누르면 잘 켜집니다.
이런 Lock이 아닌거죠.
현재 코드에 에러 없이 타는걸 보면 localDCM.lockNow(); 에 대한 이해를 제가 잘 못한것같습니다.
localDCM.lockNow();의 의미가 뭔가요
위와같이 화면을 잠그고 싶은데 방법이 없나요?
예전 KeyguardManager 로 잠금앱관련 삽질에 불발 결과도 참조로 걸겠습니다.
http://www.androidpub.com/index.php?mid=android_dev_qna&search_target=nick_name&search_keyword=%EC%9E%AC%EB%8F%8C&document_srl=2251557
lockNow() 는 말그대로 기기를 잠금상태로 만듭니다. (전원버튼을 누른 것 처럼...)
사용자가 패턴락을 설정해놓았으면 다시 켰을 때 패턴 입력화면이 뜨고,
그게 아니면 그냥 잠금해제 화면이 뜹니다.