Tôi đã khóa thành công/mở khóa màn hình của mình bằng cách sử dụng DevicePolicyManager
và KeyguardManager
trong Android L. Nó hoạt động tốt khi tôi khóa/mở khóa màn hình bằng chế độ vuốt (không có bảo mật). Tuy nhiên, tôi không thể khóa/mở khóa khi tôi khóa/mở khóa màn hình bằng cách sử dụng chế độ Mẫu và Mật khẩu (bảo mật cao hơn). Có thể khóa/mở khóa màn hình với độ bảo mật cao bằng cách sử dụng DevicePolicyManager
và KeyguardManager
. ? Đây là những gì tôi đã làmLàm cách nào để khóa/mở khóa màn hình bằng chế độ Mẫu/Mật khẩu trong Android?
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();
Lưu ý rằng, tôi đang sử dụng nó trong một dịch vụ.
Trước tiên, tôi đang sử dụng chức năng trong dịch vụ, tôi nghĩ tùy chọn của bạn không phù hợp với trường hợp của tôi. Thứ hai, tôi đã thử nó trong mã của tôi (dịch vụ) và nó không hoạt động – user3051460