BiometricPrompt 虹膜和面部提示不适用于加密对象身份验证。#AndroidX

CoD*_*oDe 9 android face-detection android-x86 android-biometric-prompt

问题

  • 生物识别虹膜和面部检测未通过biometricPrompt.authenticate(**crypto**, promptInfo)呼叫提示 。

来源参考:

用于测试的设备:

  • 三星 S8(安卓操作系统 9)

我正在遵循的身份验证步骤:

  • val biometricPrompt = BiometricPrompt(...)
  • val promptInfo = BiometricPrompt.PromptInfo.Builder()...
  • 生物识别提示。验证(提示信息)(PFA:选项A,B

还有另一种身份验证方法,它采用密码对象来确保

在新旧 API 设备支持下,一切都按预期工作。除非实现其他生物特征认证选项虹膜和使用面部检测的测试应用程序。

如果我遵循

  • 生物识别提示。身份验证(提示信息)然后应用程序简单地根据用户偏好显示身份验证选项,他必须从设备设置 -> 生物识别偏好中进行选择。并独立执行认证。(PFA: 选项A, B )

  • 但是如果使用,biometricPrompt.**authenticate**(crypto, promptInfo)那么它只显示指纹认证选项。对于其他首选项虹膜和面部检测,它不会在authenticate(..)方法调用时显示任何内容。(PFA:选项C

  • 为什么其他生物识别身份验证不提示加密对象身份验证。

在此处输入图片说明

Isa*_*ier 2

有些设备只有一种外形规格,有些则有多种外形规格。您的应用最终使用哪种外形规格并不完全取决于您;这取决于 OEM 实施。正如这篇博文中所解释的,外形规格是还是并不取决于您的代码 - 由 OEM 决定。但是,您可以通过指定调用时间来请求设备对您的应用程序使用身份验证。CryptoObjectauthenticate()

您所遇到的情况是,您的设备的 OEM 决定将指纹设为强生物识别的默认设置。因此,当您将 a 传递CryptoObjectauthenticate()这些设备时,会向用户显示指纹的 UI。