带有自定义密码的生物识别提示



我目前正在使用BiometricPrompt(androidx.biometric:biometric:1.0.0-rc01(实现AppLock

有一个选项.setDeviceCredentialAllowed(true),它使用设备的密码。

但我想知道是否有一种方法可以使用这个库的自定义密码(而不是来自系统(?

提前感谢。

但我想知道是否有一种方法可以使用这个库的自定义密码(而不是来自系统(?

不,对不起。这超出了BiometricPrompt的范围。如果您希望将设备身份验证作为应用程序特定密码的第二个因素,则需要自己实现应用程序特定的密码。

要设置允许应用程序特定密码的身份验证,您可以执行以下操作:

BiometricPrompt.PromptInfo.Builder中,指定setNegativeButtonText(String)类似于Use password。然后,在onAuthenticationError(int errorCode, CharSequence error)回调(当用户按下use password按钮时调用(中,检查errorCode == ERROR_NEGATIVE_BUTTON。在这里,您可以实现应用程序密码检查。根据您的设计,它可以从简单的设备上比较到复杂的东西,如涉及公钥/私钥的服务器/客户端检查等。

也许这不是你所要求的,但如果你想让你的用户可以选择使用生物特征或应用程序密码(应用程序而不是设备(,你可以执行以下操作。

在你的onClick监听器内部

if (BiometricManager.from(application).canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS) {
biometricPrompt.authenticate(promptInfo, cryptoObject)
} else {
loginWithAppPasswordFragment() // use this to show a DialogFragment
}

更新

下面的博客文章演示了如何使用帐户密码和生物识别技术。

最新更新