Android生物识别系统-选择哪种方法(回退到密码)?

Android生物识别系统-选择哪种方法(回退到密码)?,android,android-fingerprint-api,android-biometric-prompt,Android,Android Fingerprint Api,Android Biometric Prompt,我有一个具有PIN/锁定屏幕的应用程序。为了打开应用程序,用户需要输入他的PIN码(他之前在应用程序中设置了PIN码) 我想添加生物识别选项->而不是输入PIN,只需放置指纹即可但是,您仍然可以选择将PIN用作备用。与Revolute、LastPass或其他银行应用程序完全相同。很简单,对吧 我看过新的生物识别API,它不支持回退到自定义pin/密码(只支持回退到锁定屏幕)。我可以手动添加(当用户取消对话框时),但这会造成糟糕的用户体验(从谷歌风格的对话框切换到应用风格的屏幕)。另外,谷歌对话有

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

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

我看过新的生物识别API,它不支持回退到自定义pin/密码(只支持回退到锁定屏幕)。我可以手动添加(当用户取消对话框时),但这会造成糟糕的用户体验(从谷歌风格的对话框切换到应用风格的屏幕)。另外,谷歌对话有一个透明的背景(可能会泄露敏感信息),所以我需要将它放在一个单独的空白活动中(同样是糟糕的体验)。我想知道银行应用程序计划如何迁移到这一点

我应该用老办法做吗(指纹经理)?回退到设备锁是否足够安全?如果有人知道你的手机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()
   }
}

我认为WhatsApp的实现方式很好。“但是,您仍然可以选择使用PIN作为后备。”-这完全取决于您正在构建的应用程序。正如你所知,Whatsapp没有备用选项,我认为这是一个安全问题。他们必须以自定义方式实现,而不是使用谷歌生物识别API。屏幕已经满了,这对你来说是件好事,因为你不想在后台透露敏感信息。“我可以手动添加(当用户取消对话框时),但这会造成糟糕的用户体验(从谷歌风格的对话框切换到应用风格的屏幕)。”对我来说,这听起来很理想。如果UI看起来像普通的设备锁定屏幕,用户可能会认为他们应该输入设备解锁PIN而不是应用程序PIN。@rafakob“我可以手动添加它(当用户取消对话框时),但这会造成糟糕的用户体验(从谷歌风格的对话框切换到应用程序风格的屏幕)。”我想用同样的方法,但我担心的是,在检查身份验证错误中的
errorCode==ERROR\u NEGATIVE\u按钮时,我是否需要创建自己的对话框弹出窗口,其中包含电子邮件/用户名和密码编辑文本?您所说的
是什么意思,因为负面按钮显示使用应用程序/帐户密码?
用户必须使用应用程序的密码登录吗?或者用户必须使用其设备的PIN/密码/模式登录?在处理
提示时,是否需要创建自己的对话框弹出窗口。错误\u否定\u按钮
回调?