簡體   English   中英

如何在Android中使用模式/密碼模式鎖定/解鎖屏幕?

[英]How to lock/unlock the screen with Pattern/Password mode in Android?

我成功鎖定/解鎖使用我的屏幕DevicePolicyManagerKeyguardManager在Android的L.它運作良好,當我用划模式(無安全性)鎖定/解鎖屏幕。 但是,當我使用模式和密碼模式鎖定/解鎖屏幕時,我無法鎖定/解鎖它(更高的安全性)。 是否有可能鎖定/使用高安全性的解鎖屏幕DevicePolicyManagerKeyguardManager 這就是我做的

protected static final int REQUEST_ENABLE = 0;
DevicePolicyManager devicePolicyManager;
ComponentName adminComponent;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button button = (Button) findViewById(R.id.btn);
    button.setOnClickListener(btnListener);

}

//LOCK
Button.OnClickListener btnListener = new Button.OnClickListener() {
    public void onClick(View v) {
        adminComponent = new ComponentName(MainActivity.this, Darclass.class);
        devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);

        if (!devicePolicyManager.isAdminActive(adminComponent)) {

            Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, adminComponent);
            startActivityForResult(intent, REQUEST_ENABLE);
        } else {
            devicePolicyManager.lockNow();
        }

    }
}; 

//UNLOCK
 private KeyguardManager keyguardManager;
 KeyguardManager.KeyguardLock kl;
 keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
 kl = keyguardManager.newKeyguardLock("MyKeyguardLock");
 kl.disableKeyguard();

請注意,我在服務中使用它。

您提到您正在使用服務中的代碼,但在構建adminComponent ComponentName對象時,您提供MainActivity.this作為您的上下文! 如果您的MainActivity當前未運行,則MainActivity.this可能為NULL。

我建議您使用Service類作為Context啟動adminComponent。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM