首页 > 解决方案 > 如何使 BiometricPrompt 不可取消?

问题描述

BiometricPrompt在我的应用程序中使用。authenticate()它运行良好,并在调用该方法时显示对话框。但是当我在对话框外部单击时,此对话框会关闭。如何预防?如何使 BiometricPrompt 的对话框不可取消?这里没有像biometricPrompt.setCancelable(false).

标签: androidandroidxandroid-biometric-prompt

解决方案


BiometricPrompt不允许这样做。因此,您将无法将系统提供的生物识别提示设为不可取消。但是您可以检测到用户何时取消对话框。

所以一个选项是,在用户取消后再次显示生物识别提示(我认为这将是一个糟糕的用户体验)或使用备用用户身份验证:

override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
        if (errorCode == BiometricConstants.ERROR_USER_CANCELED) {
            // User canceled the operation

            // you can either show the dialog again here

            // or use alternate authentication (e.g. a password) - recommended way
        }
    }

推荐阅读