3

我正在尝试在我的颤振程序中写入一个 .txt 文件。我正在使用 Permission_handler 包,当我运行代码(使用mi 10)时,应用程序请求访问媒体和文件的权限,然后我点击允许,调试控制台显示“I/flutter (15890): PermissionStatus.granted”(我的意思是我做了所有关于更新 AndroidManifest.xml 或修改“gradle.properties”等的部分)。但是在写入文件时,它会抛出这个错误:

E/flutter (15890): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: FileSystemException: Cannot open file, path = '/storage/emulated/0/Download/X.txt' (OS Error: Operation not permitted, errno = 1)

我真的很感激对此的任何想法。

4

2 回答 2

0

小米 10运行在 Android 10 上。您需要在 中的<application>元素中添加以下属性AndroidManifest.xml

android:requestLegacyExternalStorage="true"

这会让您选择使用旧版存储模型。

也设置targetSdkVersion为 29,并设置为compileSdkVersion29 或 30 inbuild.gradle

于 2021-04-22T23:11:30.753 回答
0

我认为这发生在 Android 11 中是由于它们的新变化。因此,您必须再添加一项权限 ( manageExternalStorage)。

像这样

if (Platform.isAndroid) {

  Map<Permission, PermissionStatus> statuses = await [
  Permission.manageExternalStorage
  ].request();//Permission.manageExternalStorage
}

即使您也必须添加读写权限。

于 2021-08-29T08:42:54.220 回答