在Pixel 4XL(Android Q)上测试生物特征识别失败,返回BIOMETRIC_ERROR_HW_UNAVAILABLE
。
我已经设置了人脸识别
Android清单文件
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
等级依赖
dependencies {
implementation "androidx.biometric:biometric:1.0.1"
}
测试代码
private boolean setBIOSetup() {
BiometricManager biometricManager = BiometricManager.from(getActivity());
switch (biometricManager.canAuthenticate()) {
case BiometricManager.BIOMETRIC_SUCCESS:
return true;
case BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE:
Toast.makeText(getActivity(), "No biometric hardware installed",
Toast.LENGTH_LONG).show();
case BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE:
Toast.makeText(getActivity(), "Biometric hardware unavailable.",
Toast.LENGTH_LONG).show();
break;
case BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED:
Toast.makeText(getActivity(), "No biometrics enrolled", Toast.LENGTH_LONG).show();
break;
}
return false;
}
在Pixel 2XL上,它返回BIOMETRIC_SUCCESS
用于指纹生物识别但对于Pixel 4XL,它将返回BIOMETRIC_ERROR_HW_UNAVAILABLE
。
Pixel 4和4 XL不具有任何指纹传感器,而仅具有面部解锁功能。
您已经针对该库提交了错误,请参见问题#146978096并且您应该遵循他们的建议运行adb bugreport foo.zip
。
[BiometricManager
BiometricManager
至少陈述了三个先决条件:
确定是否可以使用生物识别,或者等效地确定是否可以显示BiometricPrompt。
- 可用硬件
- 已注册的模板
- 用户启用
如果确实是错误,则必须等待.canAuthenticate()
发布。
我在Pixel 4设备上看到了相同的问题