问题描述
我正在使用下面的插件
nfc_manager: ^3.1.0
permission_handler: ^8.1.0
使用此设置
[✓] Flutter (Channel stable,2.2.2,on macOS 11.4 20F71 darwin-x64,locale en-EE)
...
[✓] Connected device (3 available)
• Pixel 3a (mobile) • 965AY0WP5C • android-arm64 • Android 11 (API 30)
• macOS (desktop) • macos • darwin-x64 • macOS 11.4 20F71 darwin-x64
• Chrome (web) • chrome • web-javascript • Google Chrome 91.0.4472.101
• No issues found!
如果我跑
import 'package:Flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
void main() => runApp(
MaterialApp(
home: Material(
child: ListView.builder(
itemCount: Permission.values.length,itemBuilder: (context,index) {
final p = Permission.values[index];
print(p);
return Center(child: Text('$p'));
},),);
我得到输出
I/Flutter (22369): Permission.camera
I/Flutter (22369): Permission.contacts
I/Flutter (22369): Permission.location
I/Flutter (22369): Permission.locationAlways
I/Flutter (22369): Permission.locationWhenInUse
I/Flutter (22369): Permission.mediaLibrary
I/Flutter (22369): Permission.microphone
I/Flutter (22369): Permission.phone
I/Flutter (22369): Permission.photos
I/Flutter (22369): Permission.photosAddOnly
I/Flutter (22369): Permission.reminders
I/Flutter (22369): Permission.sensors
I/Flutter (22369): Permission.sms
I/Flutter (22369): Permission.speech
I/Flutter (22369): Permission.storage
I/Flutter (22369): Permission.ignoreBatteryOptimizations
I/Flutter (22369): Permission.notification
I/Flutter (22369): Permission.access_media_location
I/Flutter (22369): Permission.activity_recognition
I/Flutter (22369): Permission.unkNown
I/Flutter (22369): Permission.bluetooth
I/Flutter (22369): Permission.manageExternalStorage
I/Flutter (22369): Permission.systemAlertwindow
⣽I/Flutter (22369): Permission.requestInstallPackages
I/Flutter (22369): Permission.appTrackingTransparency
I/Flutter (22369): Permission.criticalAlerts
I/Flutter (22369): Permission.accessNotificationPolicy
我想避免手动添加权限的过程
但我不确定我应该请求 permission_handler
的哪个许可
访问 NFC
你能帮忙吗?
解决方法
您不需要permission_handler
插件来请求权限android.permission.NFC
,因为它是普通权限,而不是危险权限。只需在 AndroidManifest.xml
中声明即可,无需权限处理。