我在我的应用程序中使用DownloadManager从Internet下载文件。 这是我的代码。
DownloadManager downloadManager = (DownloadManager) ui.activity.getSystemService(Activity.DOWNLOAD_SERVICE);
Uri Download_Uri = Uri.parse("http://dl.appvn.com/appvn.apk");
DownloadManager.Request request = new DownloadManager.Request(Download_Uri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
.
request.setAllowedOverRoaming(false);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"appvn.apk");
request.setTitle("AppStoreVN");
request.setDescription("Android Data download using DownloadManager.");
downloadManager.enqueue(request);
我使用了setTitle& setDescription更改通知栏上的信息显示。但它也改变了我的文件名,如title(“AppStoreVN”,而它应该是“appvn.apk”)。 有人有想法吗?感谢
答案 0 :(得分:0)
我来到这里找到我认为同样的问题,当我在手机上查看“下载”应用程序时,我看到文件的标题而不是.apk
我发现如果我使用文件浏览器,虽然实际文件名是正确的,只是下载应用程序显示内容数据库详细信息,并且必须将标题设置为与通知标题相同。
如果它不解析文件,请查看logcat,因为文件创建的位置与我预期的不符。
答案 1 :(得分:0)
获取我使用的下载文件的名称:
String nameOfFile = URLUtil.guessFileName(mDownloadFileUrl, null,
MimeTypeMap.getFileExtensionFromUrl(mDownloadFileUrl));
然后设置DownloadManager的标题和说明
request.setDescription(nameOfFile);
request.setTitle(nameOfFile);
然后在目录路径中设置下载文件的实际文件名
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,
/*here the name of file is set*/nameOfFile);
希望这能帮助你:)
答案 2 :(得分:-1)
您可以像下面一样设置目的地,您也可以在其中指定文件名。
setDestinationUri()
或
setDestinationInExternalPublicDir("/mnt/sdcard/", "test.jpg");