下载管理器在Android Lollipop中工作但在Marshmallow中不起作用

时间:2016-07-02 16:47:01

标签: android android-download-manager

我从服务器下载文件但是相同的代码在棒棒糖中工作但在marshmallow中不起作用。问题是什么?

我在棉花糖中看到,当需要许可时,它会在应用程序中弹出。这是问题吗?我只是在猜测。另请查看目录

public void myDownload(String myURL, String title, String year, String branch, String section) {

    DownloadManager.Request request = new DownloadManager.Request(Uri.parse(myURL));
    request.setTitle("File Download");
    request.setDescription("Downloading....");

    //request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
    request.allowScanningByMediaScanner();
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
    String nameOfFile = URLUtil.guessFileName(myURL, null, MimeTypeMap.getFileExtensionFromUrl(myURL));

    request.setDestinationInExternalPublicDir("/sdcard/KiiTTimeTableData/" + year + "/" + branch + "/" + section + "/", nameOfFile);
    DownloadManager manager = (DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE);
    manager.enqueue(request);
}

1 个答案:

答案 0 :(得分:0)

  

问题是什么?

至少,您滥用setDestinationInExternalPublicDir()

首先,that does not take an arbitrary string as the first parameter。它需要Environment.DIRECTORY_*个常量之一,例如Environment.DIRECTORY_DOWNLOADS

其次,即使 支持任意位置,设备也不必拥有/sdcard目录。