使用DownloadManager设置下载文件的名称

时间:2018-12-28 20:15:05

标签: android

我正在开发一个Android应用,其中我使用DownloadManager类下载了文件。

问题

我正在使用setDestinationInExternalPublicDir类的DownloadManager.Request方法传递要给下载文件的名称,而不是该名称,下载文件将使用我传入的String setTitle类的{1}}方法作为其名称。

仅当我将DownloadManager.Request通知的可见性设置为DownloadManager时,才会出现此问题,否则下载的文件将采用我在true方法中传递的名称。

问题

为什么会发生这种情况,如何设置下载文件的名称?

代码

setDestinationInExternalPublicDir

1 个答案:

答案 0 :(得分:0)

使用此方法有效:_

在此下载路径中,是图像或视频URL,另一个isImage参数是图像是否为true,图像是否为false。.

private void downLoadImageVideo(String downloadPath,Boolean isImage){

    Uri Download_Uri = Uri.parse(downloadPath);

    DownloadManager downloadmanager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);

    DownloadManager.Request request = new DownloadManager.Request(Download_Uri);
    request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
    request.setAllowedOverRoaming(false);
    request.setTitle(getString(R.string.app_name));
    request.setDescription(getString(R.string.downloading));
    request.setVisibleInDownloadsUi(true);
    String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(MimeTypeMap.getFileExtensionFromUrl(downloadPath));
    request.setMimeType(mimeType);

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
    if (isImage) {
        request.setDestinationInExternalPublicDir("/AppName", "IMG_" + timeStamp + ".jpg");
    } else {
        request.setDestinationInExternalPublicDir("/AppName", "VID_" + timeStamp + ".mp4");
    }


    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
    downloadmanager.enqueue(request);
}