flutter - 无法打开 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" />
解决方案
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;
}
}
替换这些行。
推荐阅读
- php - 如何在 Ionic 中使用 php 上传文件?
- appium - 我如何启动已经使用 appium 安装的 iOS 应用程序
- python - 在 matplotlib 中调整 x 轴
- python - Pandas:如何在 python3 中对混合类型的多索引使用切片?
- java - 执行 Jar 文件时出现 NullPointerException。没有任何效果
- powershell - 获取在 vm 中运行的应用程序的 CPU、磁盘、内存和网络使用情况
- python - 如何在 3D 数组中运行迭代互相关?
- ios - 如何快速将 iPhone 设备注册令牌传递给 Web 服务?
- unit-testing - SpringBoot2.0单元测试缺少依赖
- vba - Catia Start 命令在平面上重新构图并对齐