安卓生物识别技术 - 选择哪种方法(回退到密码)?



我有一个具有PIN/锁定屏幕的应用程序。为了打开应用程序,用户需要输入他的PIN码(他之前在应用程序中设置过(。

我想添加生物识别选项 ->而不是输入 PIN 只需放置您的指纹。但是,您仍可以选择使用 PIN 作为回退。与Revolut,LastPass或其他银行应用程序完全相同。很简单,对吧?

我已经查看了新的生物识别API,它不支持回退到自定义PIN码/密码(仅回退到锁定屏幕(。我可以以某种方式手动添加它(当用户取消对话框时(,但这会产生糟糕的用户体验(从 Google 样式对话框切换到应用程序样式屏幕(。此外,Google对话框具有透明背景(可能会泄露敏感信息(,因此我需要将其放在单独的空白活动中(再次体验不佳(。我想知道银行应用程序计划如何迁移到该领域?

我应该用旧的方式(指纹管理器(来做吗?回退到设备锁定是否足够安全?如果有人知道您的手机 PIN,他可以访问您的所有应用程序。

你看过这篇博文吗? 还是那个?AndroidX 生物识别库提供了一种名为setNegativeButtonText()的方法,如果用户不想使用生物识别,该方法提供了使用帐户/应用凭据的选项。

然后在回调中你会做

override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
super.onAuthenticationError(errorCode, errString)
Log.d(TAG, "$errorCode :: $errString")
if(errorCode == BiometricPrompt.ERROR_NEGATIVE_BUTTON) {
loginWithAppAccountCredentials() // Because negative button says use application/account password
}
}

此外,当用户单击 UI 中的登录按钮时,您的 onClick 可能如下所示:

override fun onClick(view: View) {
val promptInfo = createPromptInfo()
if (BiometricManager.from(context)
.canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS) {
biometricPrompt.authenticate(promptInfo, cryptoObject)
} else {
loginWithAppAccountCredentials()
}
}

最新更新