如何从Android KeyGaurd管理器中删除指纹身份验证?

时间:2020-04-04 17:09:16

标签: android android-studio android-security keyguard device-policy-manager

当且仅当用户使用其默认设备锁定凭据进行身份验证时,我才使用我的应用程序中的keyguard管理器执行某些操作,现在发生的情况是我的设备同时启用了指纹和图案/ PIN锁定,并且密钥管理器管理器使用isKeyguardSecure方法检查身份验证,它启动结果活动并使用.createConfirmDeviceCredentialIntent ...打开意图...现在在此意图中,它默认情况下要求指纹并提供用于引脚/图案的选项...我想在我的应用程序中禁用指纹选项,并且不想从设备本身删除指纹安全性,只需针对该特定应用程序或意图禁用它即可。 这是我的代码:

KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
Intent screenLockIntent = keyguardManager.createConfirmDeviceCredentialIntent(title, description);
startActivityForResult(screenLockIntent, LOCK_REQUEST_CODE);

通过这种方法获取结果

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
    if(LOCK_REQUEST_CODE == requestCode){
        if (resultCode == RESULT_OK) {
            //Authentication is successful
              My App works now
        } else {
            //Authentication failed
        }
    }
}

Screenshot showing the fingerprint authentication which I want to remove

一切正常,我只想删除此特定应用程序的指纹身份验证,只使用PIN /密码选项... 在此先感谢;-)

1 个答案:

答案 0 :(得分:0)

如果使用createConfirmDeviceCredentialIntent(),则无法执行此操作,因为这是系统意图,因此无法更改。通常,屏幕锁定由操作系统管理,并且将支持任何已设置的内容(面部,指纹,虹膜,PIN等)

您可以在应用程序中实现一个仅PIN的自定义屏幕,但这很难完成,而且通常比操作系统提供的安全性低。