Android 6上未显示生物特征提示

5

我正在尝试使用生物识别弹窗来使用指纹传感器进行身份验证。我的最低支持的SDK为23(Android M)。

它在我测试的所有安卓版本上都能工作,除了棉花糖版(Marshmallow)。

在棉花糖版中,当我尝试在按钮点击上使用authenticate方法时,它会从BiometricPrompt.AuthenticationCallback调用onAuthenticationError方法,并且它给出错误代码ERROR_HW_NOT_PRESENT和错误消息:

此设备没有指纹传感器

即使设备上有指纹传感器,而且还添加了一个或多个指纹也是如此。

我已经在AndroidManifest.xml中添加了权限/功能。

我正在使用Jetpack库来完成这一切:

implementation 'androidx.biometric:biometric:1.0.0-alpha04'

enter image description here


这个设备可能不支持 FingerprintManager,因为它是在 Android SDK 6.0 中全新推出的。您可以尝试使用直接使用 FingerprintManager 的测试应用程序,看看会发生什么。 - CommonsWare
1
@CommonsWare 我发现 BiometricPrompt 使用 PackageManager 来检查设备是否具有指纹传感器,但即使我的 Android 6 设备具有指纹传感器,PackageManager 也无法检测到它并通知指纹传感器未被检测到,但在同一设备上,FingerprintManager 能够检测到指纹传感器。 - Sabbir
您可能需要提交一个错误报告,以便在AndroidX生物识别库中进行改进。请确保提及导致此行为的特定设备制造商和型号。 - CommonsWare
我在我的 Redmi Note 3 设备上遇到了相同的问题,该设备使用的是 6.0.1 版本的操作系统。不过,我使用了版本为 "implementation "androidx.biometric:biometric:1.0.0" 的库,这样就可以显示身份验证对话框了。 - Avinash Shinde
1个回答

2
这个问题已经在beta01中得到了解决,具体而言是以下这个bug: 链接
Fixed inconsistent behavior on API Levels 23 to 27. (b/124066957)

它不起作用了,我使用了这个版本的库 implementation "androidx.biometric:biometric:1.1.0" 在我的三星Note 4上遇到了同样的问题,操作系统版本为6.0.1。 - mhammad alkhalaf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接