问题描述
我需要在 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 (将#修改为@)