暂时禁用指纹识别功能

3

在启用指纹传感器的设备上,当我们重新启动设备时,它会暂时禁用指纹并强制用户使用PIN码/密码/图案来解锁设备。我想实现这个功能,所以我正在使用DevicePolicyManger来锁定用户设备。

mDevicePolicyManager.lockNow();

问题是它只在少数设备或ROM中锁定设备,但禁用指纹。我有一台带有Lineage OS和Mokee Rom的红米Note 3,它可以锁定屏幕并禁用指纹。但使用MIUI时,它仅锁定设备但不禁用指纹。
为什么会出现这种情况?如何确保它在每个设备/ROM上都禁用指纹验证,或者是否有其他替代方法来实现这一点?
3个回答

3
你可以尝试使用setKeyguardDisabledFeatures,将KEYGUARD_DISABLE_FINGERPRINT设置为完全禁用或仅在使用locknow API时禁用,稍后重新启用它。
至于自定义ROM,它们是否都基于相同版本的Android?如果它们是Android 7.0+,我会查看MIUI是否正在使用完整磁盘加密而不是基于文件的加密与直接引导。这两种加密方法之间的行为有一些复杂性,并且keyguard安全性与各自的加密密钥相关联。在重新启动时,指纹无法使用,因为它们不被认为是解锁硬件支持密钥库的足够强的方法。

1
尝试监听意图ACTION_USER_PRESENT。这应该在解锁屏幕后广播一次。然后再次调用setKeyguardDisabledFeatures,参数为KEYGUARD_DISABLE_FEATURES_NONE。 - Steve Miskovetz

0

我的简单答案是加密设备,这应该会在启动或重新启动时强制要求输入PIN码/图案密码,理论上来说,但我不知道是否适用于每个操作系统。如果您尝试并解决了问题,那么操作系统/设备将需要加密/解密以表现出特定的行为方式。这就是我开始的地方。


0

如果您使用7.0+的指纹设备,则可以基于应用程序添加所需的安全性,原生于Android系统,无需额外的应用锁定程序,但是您可以使用一个(例如,如果需要2FA,则可以使用Authenticator),但是似乎您不需要。如果最终用户在系统设置>安全/指纹>应用锁定中设置了此项,则无需将其放入您的应用程序中,因为系统会覆盖该清单。

https://istack.dev59.com/iYEO2.webp

编辑:在“选择应用程序加密”处,您可以指定是否要为应用程序设置PIN /模式/密码


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接