flutter - Flutter - Local_auth(未启用所需的安全功能)
问题描述
在更新我正在开发的应用程序后,我正在尝试让生物识别身份验证再次工作。但是我在激活它时经常遇到同样的错误:
PlatformException(NotAvailable, Required security features not enabled, null, null)
现在店里的那个完全没有问题。
我正在使用 local_auth: 1.1.4
MainActivity.java 已转换为 FragmentedActivity
我正在做一个简单的检查以查看生物特征是否可用。他们是谁
bool canCheckBiometrics = await auth.canCheckBiometrics;
List<BiometricType> availableBiometrics =
await auth.getAvailableBiometrics();
print(canCheckBiometrics); //Returns true
print(availableBiometrics.toString()); //Returns [BiometricType.fingerprint]
之后我尝试进行身份验证
try {
authenticated = await auth.authenticate(
biometricOnly: true,
localizedReason: 'Login with biometrics',
useErrorDialogs: true,
stickyAuth: false);
} on PlatformException catch (e) {
print(e);
}
这将返回:
PlatformException(NotAvailable, Required security features not enabled, null, null)
这就是代码中的插件注释所说的。
// Indicates the device does not have a Touch ID/fingerprint scanner.
const String notAvailable = 'NotAvailable';
我真的不知道该检查什么了。这是我需要注意的新事物吗?
真的希望有人可以帮助我解决这个问题!
希望听到!
解决方案
我建议您在尝试验证用户身份之前验证所有功能。
Future<bool> authenticateIsAvailable() async {
final isAvailable = await localAuth.canCheckBiometrics;
final isDeviceSupported = await localAuth.isDeviceSupported();
return isAvailable && isDeviceSupported;
}
这样,您只能呼叫localAuth.authenticate
已注册凭据并且可能没有例外的电话。尽管如此,如果可能,请捕获错误。
推荐阅读
- java - 如何点击 SearchView 中的建议?
- google-chrome-devtools - canvas渲染性能分析
- binding - SwiftUI - 关闭 NavigationLink 目标视图并更新主 NavigationView - EXC_BAD_ACCESS(代码=2
- powerapps - 用户需要什么权限才能创建和使用 powerapp?
- c++ - 获取资源管理器的项目视图标题的高度
- reactjs - 如何根据反应中的下拉值过滤引导表
- python - Discord.py,有什么方法可以编辑 webhook 发送的消息?
- php - 使用一个提交按钮对表单提交执行两个操作
- apigee - APIGEE 的 WebApp 代理
- python - Django: _meta.get_fields() : include_parents=False : 显示从继承派生的字段