android - Android 11 权限问题
问题描述
我的颤振代码是
var storageInfo = await PathProviderEx.getStorageInfo();
var root = storageInfo[0]
.rootDir;
var fm = FileManager(root: Directory(root));
await fm.filesTree(
excludedPaths: [
'/storage/emulated/0/Android',
],
extensions: ['pdf']
);
发生错误
E/flutter (16591): FileSystemException: Directory listing failed, path = '/storage/emulated/0/Android/obb' (OS Error: Permission denied, errno = 13)
E/flutter (16591): #0 FileManager.dirsTree (package:flutter_file_manager/src/file_manager.dart:110:7)
E/flutter (16591): #1 FileManager.filesTree (package:flutter_file_manager/src/file_manager.dart:132:34)
我有一个问题是从 Flutter 应用程序中获取 android 11 中的 stroage 文件列表
我已经在 AndroidManifest.xml 文件中添加了这两个权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
解决方案
我们需要通过permission_handler 请求manage_external_storage 权限。
将此权限添加到 AndroidManifest.xml
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
如下图所示请求权限
await Permission.manageExternalStorage.request();
然后我们可以读取任何文件并写入 Android 11 中的任何位置。
推荐阅读
- byte - 对 python 字节类型执行校验和计算
- asp.net - 在 IIS 管理器和 web.config 文件中将旧 URL 重写为新 URL 的问题
- sas - 按组计数顺序
- python - 使用多个 python 文件和一个配置文件提交 pyspark 作业
- mysql - 选择MySQL中列值“相同”的所有行?
- c# - 如何在 Blazor 中修复转换数据模型
- r - 在闪亮中使用模块
- wordpress - 如何在 wordpress docker 映像上安装 PHP Extensionson SourceGuardian?
- python - 获取TypeError:write()参数必须是str,而不是尝试将文本从一个文件添加到另一个文件时列出
- php - Laravel 查询为相同的问题发送不同的结果