【问题标题】:How to show system password option if Biometric authentication failed?如果生物特征认证失败,如何显示系统密码选项?
【发布时间】:2019-06-24 07:06:22
【问题描述】:

我在我的 Android 应用中添加了生物识别提示。所以在应用程序启动时,我能够显示提示,如果成功能够在仪表板屏幕上重定向用户。如果用户失败,我想显示系统密码作为验证的辅助选项。如何使用生物识别提示来做到这一点?

mBiometricManager = new BiometricManager.BiometricBuilder(FingerprintActivity.this)
                .setTitle(getString(R.string.biometric_title))
                .setSubtitle(getString(R.string.biometric_subtitle))
                .setDescription(getString(R.string.biometric_description))        
                .setNegativeButtonText(getString(R.string.biometric_negative_button_text))
                .build();

 mBiometricManager.authenticate(FingerprintActivity.this);

【问题讨论】:

    标签: android android-biometric-prompt


    【解决方案1】:

    你可以通过扩展BiometricPrompt.AuthenticationCallback来处理,主要有两种处理失败状态的方法。 onAuthenticationErroronAuthenticationFailed

    onAuthenticationFailed

    当指纹与设备上注册的任何指纹都不匹配时,将触发此回调。

    onAuthenticationError

    当遇到不可恢复的错误并且身份验证过程没有成功完成时,将触发此回调。回调提供了错误代码以识别错误原因

    您可以使用Device administration API 在Biometic auth 失败的情况下显示系统密码。

    【讨论】:

    • 您能否提供一些示例链接?因为我什么都找不到?还有一件事是 Android P 已弃用 Device Administration API。
    • 试过了,但它要求我设置密码,而密码已经设置。相反,我想要的是,如果生物特征验证失败,将向用户显示密码字段,以便他可以输入系统密码并重定向到仪表板。
    【解决方案2】:

    在你的生物识别提示上添加这个

    .setDeviceCredentialAllowed(true)
    

    但请检查手机是否设置了密码/密码:

    android.app.KeyguardManager#isDeviceSecure()
    

    【讨论】:

      猜你喜欢
      • 2020-04-19
      • 2021-10-01
      • 2016-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      • 2021-03-23
      • 2021-01-03
      相关资源
      最近更新 更多