DownloadManager 没有开始下载文件

Gio*_*oli 6 android download-manager android-download-manager

想象一下,我想下载这个文件(随机文件):http : //www.analysis.im/uploads/seminar/pdf-sample.pdf

这是我的代码:

DownloadManager.Request req = new DownloadManager.Request(Uri.parse("http://www.analysis.im/uploads/seminar/pdf-sample.pdf"));

req.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
   .setAllowedOverRoaming(false)
   .setTitle("Random title")
   .setDescription("Random description")
   .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "pdf-sample.pdf");
Run Code Online (Sandbox Code Playgroud)

在调试模式下,我可以看到所有参数都正确,为什么下载没有开始?

编辑

我目前的权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)

Sil*_*ght 6

你允许在网络类型下载DownloadManager.Request.NETWORK_MOBILE,但你为什么设置setAllowedOverRoaming(false)

我试图用来Downloadmanager下载文件,这是我的代码:

String url = "http://example.com/large.zip";
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));

// only download via WIFI
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
request.setTitle("Example");
request.setDescription("Downloading a very large zip");

// we just want to download silently
request.setVisibleInDownloadsUi(false);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
request.setDestinationInExternalFilesDir(context, null, "large.zip");

// enqueue this request
DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
downloadID = downloadManager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

我希望你受到启发。