我尝试使用 flutter 下载器包从 firebase 存储下载 pdf 文件。但是下载总是显示失败,不知道是什么原因。
这是我试过的代码。请提出一些解决方案。提前致谢。
void _startDownload(String link) async
{
var dir = await getExternalStorageDirectory();
try{
final taskId = await FlutterDownloader.enqueue(
url: link,
savedDir: dir.path,
fileName:"sampe.docx",
showNotification: true, // show download progress in status bar(forAndroid)
openFileFromNotification: true, // click on notification to open downloaded file (for Android)
);
debugPrint(taskId);
// FlutterDownloader.retry(taskId: taskId);
}
catch(e){
print(e);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误。
W/System.err(18012): java.io.FileNotFoundException: /storage/emulated/0/sampe.docx (Permission denied)
W/System.err(18012): at java.io.FileOutputStream.open(Native Method)
W/System.err(18012): at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
W/System.err(18012): at java.io.FileOutputStream.<init>(FileOutputStream.java:140)
W/System.err(18012): at vn.hunghd.flutterdownloader.DownloadWorker.downloadFile(DownloadWorker.java:190)
W/System.err(18012): at vn.hunghd.flutterdownloader.DownloadWorker.doWork(DownloadWorker.java:102)
W/System.err(18012): at androidx.work.Worker$1.run(Worker.java:57)
W/System.err(18012): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
W/System.err(18012): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
W/System.err(18012): at java.lang.Thread.run(Thread.java:760)
I/WorkerWrapper(18012): Worker result SUCCESS for Work [ id=b7676538-a655-454a-89e2-1899f0e078cd, tags={ vn.hunghd.flutterdownloader.DownloadWorker, flutter_download_task } ]
Run Code Online (Sandbox Code Playgroud)
确保您有写权限。没有读、写权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Run Code Online (Sandbox Code Playgroud)