Flutter中如何使用auth.getavailablebiometrics()获取可用生物识别
在Flutter中调用auth.getAvailableBiometrics()时,总是返回空列表,但设备明明支持指纹识别。具体代码如下:
final availableBiometrics = await auth.getAvailableBiometrics();
print(availableBiometrics); // 输出[]
已经确认:
- 设备已设置指纹解锁
- AndroidManifest.xml已添加USE_BIOMETRIC权限
- 测试机是Android 10系统
请问可能是什么原因导致无法获取可用的生物识别方式?是否需要额外配置或其他检测步骤?
更多关于Flutter中如何使用auth.getavailablebiometrics()获取可用生物识别的实战教程也可以访问 https://www.itying.com/category-92-b0.html
2 回复
在Flutter中使用auth.getAvailableBiometrics()方法:
- 导入
local_auth包 - 检查生物识别支持:
List<BiometricType> availableBiometrics =
await auth.getAvailableBiometrics();
- 返回结果包含支持的生物识别类型列表,如指纹、面容等
更多关于Flutter中如何使用auth.getavailablebiometrics()获取可用生物识别的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,使用 auth.getAvailableBiometrics() 需要先安装 local_auth 插件,然后检查设备支持的生物识别类型。
步骤:
-
添加依赖
在pubspec.yaml中添加:dependencies: local_auth: ^2.1.2运行
flutter pub get。 -
配置平台权限
- Android:在
AndroidManifest.xml中添加:<uses-permission android:name="android.permission.USE_BIOMETRIC" /> - iOS:在
Info.plist中添加:<key>NSFaceIDUsageDescription</key> <string>需要FaceID进行身份验证</string>
- Android:在
-
代码实现
import 'package:flutter/services.dart'; import 'package:local_auth/local_auth.dart'; class BiometricAuth { static final LocalAuthentication auth = LocalAuthentication(); // 获取可用生物识别方式 static Future<List<BiometricType>> getAvailableBiometrics() async { try { return await auth.getAvailableBiometrics(); } on PlatformException catch (e) { print("错误: ${e.message}"); return []; } } } // 使用示例 void checkBiometrics() async { List<BiometricType> availableBiometrics = await BiometricAuth.getAvailableBiometrics(); if (availableBiometrics.isNotEmpty) { print("可用生物识别: $availableBiometrics"); // 可能返回: [BiometricType.fingerprint, BiometricType.face] } else { print("无可用生物识别"); } }
返回值说明:
BiometricType.fingerprint:指纹识别BiometricType.face:面部识别(包括Face ID)BiometricType.iris:虹膜识别(部分Android设备)
注意事项:
- 调用前需确保设备已设置生物识别
- 部分Android设备可能不支持此功能
- 实际使用时建议先检查生物识别是否可用再调用验证方法
通过这种方式可以安全获取设备支持的生物识别方式,为后续身份验证做准备。

