【问题标题】:Temporarily disabling fingerprint暂时禁用指纹
【发布时间】:2017-08-05 19:25:47
【问题描述】:

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

mDevicePolicyManager.lockNow();

问题是它会锁定设备,但仅在少数设备或 ROM 中禁用指纹。我有带有自定义 rom 的 Redmi Note 3,如 lineage OS 和 Mokee Rom,它锁定屏幕并禁用指纹。但使用 MIUI 时,它只会锁定设备,但不会禁用指纹。

为什么会这样?我如何确保它禁用每个设备/ROM 的指纹身份验证,或者是否有其他替代方法可以实现这一点?

【问题讨论】:

    标签: android device-admin device-policy-manager


    【解决方案1】:

    您可以尝试使用 setKeyguardDisabledFeatures 并将 KEYGUARD_DISABLE_FINGERPRINT 设置为完全禁用它们,或者在使用 locknow API 时仅禁用它们,稍后重新启用。

    至于自定义 ROM,它们都是基于相同版本的 Android 吗?如果它们是 Android 7.0+,我会看看 MIUI 是否使用全盘加密而不是直接启动的基于文件的加密。这两种加密方法之间的行为存在一些复杂性,并且 keyguard 安全性与各自的加密密钥相关联。在重新启动时,无法使用指纹,因为它们被认为不足以解锁硬件支持的密钥库。

    【讨论】:

    • 尝试监听意图 ACTION_USER_PRESENT。这应该在键盘保护消失后广播。然后使用 KEYGUARD_DISABLE_FEATURES_NONE 再次调用 setKeyguardDisabledFeatures。
    【解决方案2】:

    理论上,我的简单答案是加密应该在启动或重启时强制使用 pin/pattern 的设备,但我不知道这是否适用于每个操作系统。如果您尝试它并且问题解决了,那么操作系统/设备将需要加密/解密才能以某种方式运行。这就是我要开始的地方。

    【讨论】:

      【解决方案3】:

      使用应用储物柜,如果您有使用 7.0 + 的指纹设备,那么您可以逐个应用添加您想要的安全类型,Android 原生,不需要额外的应用储物柜应用,尽管您可以使用一个(例如如果您需要 2FA,请使用身份验证器),但听起来不像您做的那样。你不需要把它放在你的应用程序中,因为如果最终用户在系统内的设置>安全/指纹>应用程序储物柜中设置了它,系统会覆盖该清单。

      https://i.stack.imgur.com/iYEO2.jpg

      编辑:在“为应用选择加密”的地方,您可以指定是否需要应用的 pin/模式/密码

      【讨论】:

        猜你喜欢
        • 2017-08-10
        • 2012-12-25
        • 2014-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多