首页 > 解决方案 > 如何在颤动中解决(操作系统错误:不允许操作,errno = 1)

问题描述

我想将图像保存到我的下载文件夹。我已经添加了权限,但我仍然收到如下错误。

我在 AndroidManifest.xml 中添加了权限,如下所示:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />

我还在AndroidManifest.xml中添加了android:requestLegacyExternalStorage="true"

除此之外,我还使用了permission_handler: ^8.1.6来打开存储权限。

 _requestPermission() async {
Map<Permission, PermissionStatus> statuses = await [
  Permission.storage,
].request();

final info = statuses[Permission.storage].toString();
print(info);
}

这是下载图像的代码。我使用的包是downloads_path_provider: ^0.1.0

 Future<File> downloadImage(Uint8List data, String name) async {
    Directory tempDir = await DownloadsPathProvider.downloadsDirectory;
    String tempPath = tempDir.path;
    var filePath = tempPath + '/$name';

    var bytes = ByteData.view(data.buffer);
    final buffer = bytes.buffer;

    return File(filePath).writeAsBytes(
        buffer.asUint8List(data.offsetInBytes, data.lengthInBytes));
  }

这是我想下载图像时的错误。

E/flutter (26950): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: 
FileSystemException: Cannot open file, path = '/storage/emulated/0/Download/image-2021-09-23 17:18:47.923358.jpg' 
(OS Error: Operation not permitted, errno = 1)

有谁知道如何解决这个错误?

标签: flutter

解决方案


推荐阅读