За последние 48 часов я пытаюсь это решить, я прошел через ряд примеров ... и до сих пор ничего. Я пытаюсь добавить в свое приложение загрузку одного файла - позже он будет запущен RabbitMQ, но в настоящее время - для целей тестирования я хотел бы сделать это с помощью buttonClick, в приведенном ниже примере я пропустил любые дополнительные параметры (такие как Description, Название et c. ...). После щелчка я получаю информацию о том, что Download Manager не смог загрузить файл, конечно же, файл существует по ссылке (я могу загрузить его без проблем из браузера телефона).
public void downloadFile2(View view) {
if(PermissionCheck.readAndWriteExternalStorage(this)) {
DownloadManager downloadmanager = (DownloadManager)this.getSystemService(this.DOWNLOAD_SERVICE);
Uri uri = Uri.parse("http://xxxxxx/File1.pdf");
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setVisibleInDownloadsUi(true);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"/File1.pdf");
downloadmanager.enqueue(request);
}
}
Среда. DIRECTORY_DOWNLOADS - я пробовал несколько загрузок каталогов, но ни одна не работала setDestinationInExternalPublicDir (у меня есть попытка laso setDestinationInExternalFilesDir - не повезло
package com.example.majap;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
public class PermissionCheck {
public static boolean readAndWriteExternalStorage(Context context) {
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
return false;
} else {
return true;
}
}
}
И, конечно, в манифесте есть (даже для много)
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />