Java 在像素4XL上检测生物特征失败,生物特征错误不可用
在像素4XL(安卓Q)上测试生物识别失败,返回Java 在像素4XL上检测生物特征失败,生物特征错误不可用,java,android,androidx,android-biometric,Java,Android,Androidx,Android Biometric,在像素4XL(安卓Q)上测试生物识别失败,返回生物识别错误\u HW\u不可用 我已经设置了人脸识别 Android清单文件 <uses-permission android:name="android.permission.USE_BIOMETRIC" /> 测试代码 private boolean setBIOSetup() { BiometricManager biometricManager = BiometricManager.from(getActivity()
生物识别错误\u HW\u不可用
我已经设置了人脸识别
Android清单文件
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
测试代码
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;
}
在像素2XL上,它返回指纹生物识别的生物识别\u成功
但对于Pixel 4XL,它返回
生物识别错误\u HW\u不可用
Pixel 4和4 XL没有任何指纹传感器,只有面部解锁
您已经针对库提交了一个bug,请参阅问题您应该按照他们的建议运行
adb bugreport foo.zip
.canAuthenticate()
至少说明了三个先决条件:
确定是否可以使用生物识别技术,或是否可以等效地显示生物识别提示
- 可用硬件
- 注册模板
- 用户启用
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;
}