首页 > 解决方案 > 无法打开 flutter_downloader 的下载文件

问题描述

我正在使用颤振下载器包下载文件,但在我的情况下,下载成功完成,但我无法通过在通知中单击它来打开下载器文件,而且我在手机的文件中找不到它

这是我解决这个问题的代码

downloadFile(url) async {
    final directory = await getExternalStorageDirectory();
    print("the directory is :");
    print(directory.path);
    try {
      final taskId = await FlutterDownloader.enqueue(
        url: url,
        savedDir: directory.path,
        showNotification: true,
        openFileFromNotification: true,
      ).then((value) async {
        bool waitTask = true;
        while (waitTask) {
          String query = "SELECT * FROM task WHERE task_id='" + value + "'";
          var _tasks =
              await FlutterDownloader.loadTasksWithRawQuery(query: query);
          String taskStatus = _tasks[0].status.toString();
          int taskProgress = _tasks[0].progress;
          if (taskStatus == "DownloadTaskStatus(3)" && taskProgress == 100) {
            waitTask = false;
          }
        }

        await FlutterDownloader.open(taskId: value);
      });
      print("the task id is :");
      print(taskId);
    } catch (e) {
      print(e);
    }
  }

谁能知道这个问题的原因

请注意:我添加了权限

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

标签: flutterdart

解决方案


while (waitTask) {
          String query = "SELECT * FROM task WHERE task_id='" + value! + "'";
          var _tasks =
              await FlutterDownloader.loadTasksWithRawQuery(query: query);
          String taskStatus = _tasks![0].status.toString();
          int taskProgress = _tasks[0].progress;
          if (taskStatus == "DownloadTaskStatus(3)" && taskProgress == 100) {
            waitTask = false;
          }
        }

替换这些行。


推荐阅读