0

在 Pixel 4XL (Android Q) 上测试生物识别失败,返回BIOMETRIC_ERROR_HW_UNAVAILABLE.

我已设置人脸识别

安卓清单文件

<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

4

1 回答 1

1

Pixel 4 和 4 XL 没有任何指纹传感器,只有面部解锁。

您已经提交了针对该库的错误,请参阅问题#146978096
,您应该按照他们的建议运行adb bugreport foo.zip.

BiometricManager .canAuthenticate()至少说明三个先决条件:

确定是否可以使用生物特征,或者等效地确定是否可以显示 BiometricPrompt。

  • 可用硬件
  • 已注册模板
  • 用户启用

如果它确实是一个错误,你将不得不等到androidx.biometric:biometric:1.0.2发布。

于 2020-01-31T03:08:13.250 回答