Я пытаюсь загрузить файл с сервера с помощью DownloadManager, но он не загружается и скачает «Загрузка не увенчалась успехом», я прочитал, что есть проблема с Download Manager в приведенной ниже ссылке android-chrome-browser-unnecessarily-renames-names-types-of-downloaded-files, поэтому я попытался загрузить файл, добавив RequestHeader в DownloadManagerRequest, используя метод ниже, но ничего не произошло. пожалуйста, найдите приведенную ниже часть кода моего класса Downloader, пожалуйста, предложите мне правильный способ загрузить файл с url с помощью DownloadManager.Загрузите Unsuccessful при использовании DownLoadManager.Request, чтобы загрузить файл с url
URL:
HTTP: // -Хранение. .net/95 - ****/95-3194.pdf AWSAccessKeyId = T9YG9HWQC1LHE5G5VF38 & Истекает = 1483443248 & Подпись = Z% 2BkWzfEI2VawbCx% 2F2Yto1kPcJKA% 3D
Благодаря
public void download(Uri uri) {
if (!isDownloading()) {
String fileName=getName(uri);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setTitle(fileName);
request.setNotificationVisibility(1);
request.allowScanningByMediaScanner();
request.addRequestHeader("Content-Type", "application/octet-stream");
request.addRequestHeader("Content-Disposition", "attachment; filename=\""+fileName.split("\\.")[0]+"."+fileName.split("\\.")[1].toUpperCase()+"\"");
String cookieContent = getCookieFromAppCookieManager(uri.getHost());
request.addRequestHeader("Cookie", cookieContent);
downloadId = downloadManager.enqueue(request);
register();
}
}
и ниже блок возвращает имя файла
private String getName(Uri uri) {
String name=uri.toString().split("jabord/")[1].split("\\?")[0];
return name;
}
возвращает менеджер appcookie
public String getCookieFromAppCookieManager(String url){
android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();
if (cookieManager == null) {
return null;
}
String rawCookieHeader = null;
// Extract Set-Cookie header value from Android app CookieManager for this URL
rawCookieHeader = cookieManager.getCookie(url);
if (rawCookieHeader == null) {
return null;
}
return rawCookieHeader;
};