DownloadManager установить заголовок изменить мое имя файла

Я использовал DownloadManager в своем приложении для загрузки файла из Интернета. Вот мой код.

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, чтобы изменить отображение информации на панели уведомлений. Но это также меняет имя моего файла, например заголовок («AppStoreVN», хотя должно быть «appvn.apk»). У кого-нибудь есть идеи? Спасибо


person tuan.giao    schedule 08.11.2014    source источник


Ответы (3)


для получения имени загружаемого файла я использовал:

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);

надеюсь, это поможет вам :)

person LEGEND MORTAL    schedule 22.12.2017

Я пришел сюда, обнаружив то, что, как мне казалось, было той же проблемой, что и когда я смотрю в приложении «загрузки» на телефоне, я вижу название файла вместо .apk.

Я обнаружил, что если я использую проводник, хотя фактическое имя файла правильное, просто приложение для загрузки показывает сведения о базе данных контента и должно установить заголовок, совпадающий с заголовком уведомления.

Если он не будет анализировать файл, посмотрите на logcat, поскольку местоположение, в котором был создан файл, не соответствует тому, что я ожидал.

person Andrew    schedule 10.03.2016

вы можете установить пункт назначения, как показано ниже, в котором вы также можете указать имя файла.

setDestinationUri() 

или

setDestinationInExternalPublicDir("/mnt/sdcard/", "test.jpg");
person Kirtan    schedule 08.11.2014