Flutter、local_auth:Face ID 身份验证不起作用即使它可用

问题描述

我需要在 Flutter 应用程序中实现 Face ID(生物识别)身份验证。我正在使用颤振包“local_auth”v1.1.6 (https://pub.dev/packages/local_auth)。但是,在所需设备上运行时,应用程序中的面部验证选项不可用。

我正在使用以下功能,该功能在按下按钮时运行:

Future<bool> authenticate() async {
  try {
    final canCheckBiometrics = await _auth.canCheckBiometrics;
    print('canCheckBiometrics: ');
    print(canCheckBiometrics);

    final availableBiometrics = await _auth.getAvailableBiometrics();
    print('getAvailableBiometrics: ');
    print(availableBiometrics);

    return await _auth.authenticate(
      localizedReason: 'Authenticate',biometricOnly: true,);
  } on PlatformException catch (e) {
    print(e);
    rethrow;
  }

}

然而,面部身份验证从未显示为可用的身份验证选项,即使它被列为“可用的生物特征”:

I/Flutter ( 4816): canCheckBiometrics:
I/Flutter ( 4816): true
I/Flutter ( 4816): getAvailableBiometrics:
I/Flutter ( 4816): [BiometricType.fingerprint,BiometricType.face]

如果设备上同时设置了指纹和人脸,指纹将显示为唯一可用的身份验证选项。如果只设置了 face,local_auth 库会抛出“NotEnrolled”异常(如果没有设置任何方法也一样):

I/Flutter ( 4816): canCheckBiometrics:
I/Flutter ( 4816): true
I/Flutter ( 4816): getAvailableBiometrics:
I/Flutter ( 4816): [BiometricType.fingerprint,BiometricType.face]
I/Flutter ( 4816): PlatformException(NotEnrolled,No biometrics enrolled on this device.,null,null)

为了运行应用程序,我使用的是搭载 Android 10 的 ULEFONE ARMOR X7 手机——它同时具有指纹和面容 ID 身份验证,两者都可用于解锁设备屏幕——即使只设置了面部,它也可以使用用于解锁屏幕,但在应用程序内不可用。

有什么办法可以在这款手机上启用 Face ID 身份验证?让它在此设备上专门工作对我来说至关重要。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)