微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在 Flutter 中下载文件

如何解决无法在 Flutter 中下载文件

我最近将所有软件包更新到了​​最新版本,但现在我的下载无法正常工作。它向我抛出这个运行时错误“java.io.FileNotFoundException:/storage/emulated/0/Download/meme.jpg:打开失败:EPERM(不允许操作)”

这是我的代码`

Future<void> downloadMeme(link) async {
    
    var permissionStatus = await Permission.storage.status;
    if (permissionStatus.isDenied ||
        permissionStatus.isPermanentlyDenied) {
      
      Map<Permission,PermissionStatus> statuses =
      await [Permission.storage].request();
      if (permissionStatus.isGranted) {
        String path =
        await ExtStorage.getExternalStoragePublicDirectory(
            ExtStorage.DIRECTORY_DOWNLOADS);
        Future<Directory> downloadsDirectory = DownloadsPathProvider
            .downloadsDirectory;
        final taskId = await FlutterDownloader.enqueue(
          url: link,savedDir: path,showNotification: true,openFileFromNotification: true,fileName: 'meme.jpg',);
      }
      print(statuses[Permission.storage]);
    }
    else if (permissionStatus.isGranted) {
      Future<Directory> downloadsDirectory = DownloadsPathProvider
          .downloadsDirectory;

      final Directory downloadDir = await getExternalStorageDirectory();

      String path =
      await ExtStorage.getExternalStoragePublicDirectory(
          ExtStorage.DIRECTORY_DOWNLOADS);
      final taskId = await FlutterDownloader.enqueue(
        url: link,);
    }
  }
`

这是我的 main.dart 代码

 WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FlutterDownloader.initialize(
      debug: true // optional: set false to disable printing logs to console
      );

我也编辑了我的清单

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-feature android:name="android.hardware.camera.any" android:required="true" />
    <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

    <application
        android:name="io.Flutter.app.FlutterApplication"
        android:label="Meme House"
        android:icon="@mipmap/ic_launcher"
        android:requestLegacyExternalStorage="true"
        >
        <provider
            android:name="vn.hunghd.Flutterdownloader.DownloadedFileProvider"
            android:authorities="${applicationId}.Flutter_downloader.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <Meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"/>
        </provider>

甚至一些其他软件包,如画廊保护程序和图像画廊保护程序也无法正常工作, 伙计们,你能帮我吗

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。