我有一个应用程序,我需要 Select 像PDF JSON等文件.首先,我导出我的文件,然后我可以导入它.为此,我使用带有以下代码的file_picker包.现在的问题是,我可以在iOS中 Select 任何文件的路径,但在Android端,我不能直接 Select 文件或文件路径,即使我在AndroidManifest中给予了许可.

在iOS中,当我从file_picker触发pickFile()功能时,它也能正常工作.在Android部分,当我触发该函数时,它会打开文件,但我不能直接 Select 路径或文件.连我都看不到Ffltter的申请文件夹.

以下是我使用的代码:

 final result = await FilePicker.platform.pickFiles(
                type: FileType.custom,
                allowedExtensions: ['json'],
              );

在这里,在得到结果后,我判断其他条件.现在的问题是,正如我所说的,我不能从Android端获得明确的文件/文件路径.

Android Manifest部分:

<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" />
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />

推荐答案

要限制对共享存储的广泛访问,目标是Android 11(API级别30)或更高级别,request all-files access through the MANAGE_EXTERNAL_STORAGE permission.

要在将WRITE_EXTERNAL_STORAGE添加到AndroidManifest.xml之后执行此操作,请将100包添加到您的应用程序中,并请求如下权限:

 void requestPermission() {  

await Permission.manageExternalStorage.request();
  
  }

Flutter相关问答推荐

Flutter FireRestore:如何从特定/实际领域获取数据

如何将图像从顶部和底部半向外设置为飘动

Flutter在创建时为提供者调用初始化函数

如何使用flutter_local_notification包处理通知操作?

如何在不注销的情况下刷新Firebase身份验证用户

如何在Flutter Webview包中触发基于URL导航的事件

DART:如何判断有时可以为空的泛型类型?

使用Ffltter CREATE创建项目时,androidManifest.xml中缺少包属性

GridView 渲染项目之间有微小的间隙

如何在flutter中实现这样的底部导航栏?

Dart:未捕获错误:RangeError(索引):索引超出范围:索引应小于 7:7

如何正确地将 PageView 设置为 AppBar 的标题?

Android 模拟器在 Apple M2 芯片 EXC_BAD_ACCESS / KERN_INVALID_ADDRESS 上随机崩溃

如何解决需要一个标识符,但得到的是:.try 在:之前插入一个标识符.dart 错误

flutter 中 // 和 /// 有什么区别

单元测试中如何比较NaN和NaN是否相等

在 Flame Forge2d 中射击子弹

Flutter 用户过滤器

如何在 Flutter 中的页面加载上的 Listview 上应用自动滚动

使用 hydrad_bloc 的预览包