我正在制作使用DownloadManager的Android应用程序。 我想将文件下载到我制作的文件夹中。 但是这些来源不起作用。 并发生IllegalstateException。 我该怎么办?
urlToDownload = Uri.parse(URL);
List<String> pathSegments = urlToDownload.getPathSegments();
request = new DownloadManager.Request(urlToDownload);
request.setTitle(Titlename);
request.setDescription("MCPE STORE");
request.setDestinationInExternalPublicDir(
Environment.getExternalStorageDirectory().getAbsolutePath() +
"/MCPE STORE", pathSegments.get(pathSegments.size()-1));
Environment.getExternalStoragePublicDirectory(
Environment.getExternalStorageDirectory().getAbsolutePath() +
"/MCPE STORE").mkdir();
latestId = downloadManager.enqueue(request);
答案 0 :(得分:11)
我该怎么办?
如果您阅读the documentation for setDestinationInExternalPublicDir()
,您会看到第一个参数是“目录类型to pass to getExternalStoragePublicDirectory(String)
”。这需要是Environment
类定义的常量之一,如Environment.DIRECTORY_DOWNLOADS
。您正在传递其他内容,但不受支持。
答案 1 :(得分:5)
确保你有
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在manifest.xml
此外,如果您使用的是模拟器,请确保使用SD卡存储创建它。它不是默认创建的。