我正在开发一个Android应用,其中我使用DownloadManager
类下载了文件。
问题
我正在使用setDestinationInExternalPublicDir
类的DownloadManager.Request
方法传递要给下载文件的名称,而不是该名称,下载文件将使用我传入的String
setTitle
类的{1}}方法作为其名称。
仅当我将DownloadManager.Request
通知的可见性设置为DownloadManager
时,才会出现此问题,否则下载的文件将采用我在true
方法中传递的名称。
问题
为什么会发生这种情况,如何设置下载文件的名称?
代码
setDestinationInExternalPublicDir
答案 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);
}