如何从 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?