试图打开 .pdf 文件,如
ElevatedButton(
onPressed: () async {
await OpenFile.open('/storage/emulated/0/Download/myqr.pdf')
.then((value) {
log(value.message.toString());
});
},
child: const Text("Open File"),
)
但不工作。
它给出错误:权限被拒绝:android.permission.READ_EXTERNAL_STORAGE
已在 AndroidMenifest.xml 中添加权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
请求权限:
Future askRequiredPermission() async {
Map<Permission, PermissionStatus> statuses = await [
Permission.storage,
Permission.manageExternalStorage,
Permission.accessMediaLocation
].request();
Android 13 需要这些权限:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
在 Android 13 设备上,您不会请求 READ_EXTERNAL_STORAGE 权限。
您的应用程序创建的文件会自动拥有它。
将此方法与权限处理程序一起使用https://pub.dev/packages/permission_handler:
var permissionStatus = await Permission.storage.status;
switch (permissionStatus) {
case PermissionStatus.denied:
case PermissionStatus.permanentlyDenied:
await Permission.storage.request();
break;
default:
}
仅在清单中:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />