我试图创建一个由Flutter应用程序生成的新JSON文件,我想让用户选择存储该文件的位置。
我目前使用file_picker
包让用户选择路径来存储生成的文件。如果我选择Documents文件夹(/storage/emulated/0/Documents
),我可以创建该文件,但如果我选择另一个路径(例如/storage/emulated/0/DCIM
或由名为Test
的用户创建的自定义文件夹),我会得到以下异常:FileSystemException: Cannot open file, path = '/storage/emulated/0/Test/backup.json' (OS Error: Operation not permitted, errno = 1)
请注意,我正在Android 13的模拟器上运行我的应用。我还尝试在Manifest中添加此权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
并尝试使用软件包permission_handler
请求存储权限,但没有任何变化。
2条答案
按热度按时间vwkv1x7d1#
DCIM可能是媒体或照片的一部分
所以如果有效话试试这个,我通常在我的清单中包含
把我的gradle设置成这样
然后对于许可,您可以将它们放在列表中,以防请求时出现
zpgglvta2#
如果您的目标是Android 11及更高版本(targetSdkVersion 30),则需要在AndroidManifest.xml中拥有以下权限才能进行修改和文档访问。
您可以在这里找到更多细节https://stackoverflow.com/a/66366102/19292778