如何从 Android KeyGuardmanager 中删除指纹认证?

Posted

技术标签:

【中文标题】如何从 Android KeyGuardmanager 中删除指纹认证?【英文标题】:How to remove fingerprint authentication from Android KeyGaurd manager? 【发布时间】:2020-07-16 19:05:48 【问题描述】:

当且仅当用户使用他的默认设备锁定凭据进行身份验证时,我在我的应用程序中使用了 keyguard manager 来执行某些操作,现在发生的情况是我的设备同时启用了指纹和图案/pin 锁定,并且当keyguard manager 使用 isKeyguardSecure 方法检查身份验证,它启动一个活动以获取结果并使用 .createConfirmDeviceCredentialIntent 打开意图......现在在这个意图中,它默认要求指纹并提供 pin/pattern 选项......我想在我的应用程序中禁用指纹选项,并且不想从设备本身中删除指纹安全性,只需为该特定应用程序或意图禁用它即可。 这是我的代码:

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】:

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

您可以在您的应用中实现一个自定义的仅 PIN 屏幕,但这很棘手,而且通常不如操作系统提供的安全。

【讨论】:

以上是关于如何从 Android KeyGuardmanager 中删除指纹认证?的主要内容,如果未能解决你的问题,请参考以下文章

android: 如何从 Android Support Lib 版本 4 向 PagerTabStrip 添加图标/drawables?

Android:从片段调用时如何从活动中获取返回结果?

Android:如何在 android 中从服务器打开 pdf 文件 [关闭]

如何从 android 活动启动 Unity 应用程序?

Android -- 如何从 https 获取图片

如何从 Android 设备获取 apk 文件?