簡體   English   中英

無法為 flutter_downloader 打開下載的文件

[英]Unable to open downloaded file for flutter_downloader

我正在使用 flutter 下載器包來下載文件,但在我的情況下,下載成功完成,但我無法通過在通知中單擊它來打開下載器文件,並且在我的手機文件中找不到它

這是我解決這個問題的代碼

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" />

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; } }

替換這些行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM