我目前正在使用 BiometricPrompt ( androidx.biometric:biometric:1.0.0-rc01
)实现 AppLock
有一个 .setDeviceCredentialAllowed(true)
使用设备密码的选项。
但我想知道是否有办法使用自定义密码(不是来自系统)使用这个库?
提前致谢。
我目前正在使用 BiometricPrompt ( androidx.biometric:biometric:1.0.0-rc01
)实现 AppLock
有一个 .setDeviceCredentialAllowed(true)
使用设备密码的选项。
但我想知道是否有办法使用自定义密码(不是来自系统)使用这个库?
提前致谢。
但我想知道是否有办法使用自定义密码(不是来自系统)使用这个库?
不,对不起。这超出了BiometricPrompt
. 如果您希望将设备身份验证用作应用专用密码的第二个因素,您需要自己实施应用专用密码。
也许不完全是您所要求的,但如果您希望您的用户可以选择使用生物识别或应用程序密码(应用程序而不是设备),您可以执行以下操作。
在你的 onClick 监听器中
if (BiometricManager.from(application).canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS) {
biometricPrompt.authenticate(promptInfo, cryptoObject)
} else {
loginWithAppPasswordFragment() // use this to show a DialogFragment
}
更新
以下博客文章演示了如何将帐户密码与生物识别一起使用。
要设置允许应用特定密码的身份验证,您可以执行以下操作:
在 中BiometricPrompt.PromptInfo.Builder
,指定setNegativeButtonText(String)
为类似Use password
. 然后,在onAuthenticationError(int errorCode, CharSequence error)
回调(当用户按下use password
按钮时调用)中,检查errorCode == ERROR_NEGATIVE_BUTTON
. 在这里,您可以实施您的应用密码检查。根据您的设计,它的范围可以从简单的设备比较到复杂的东西,例如涉及公钥/私钥的服务器/客户端检查等。