Я загружаю данные с сервера, используя класс DownloadManager в android. Данные сохраняются во внешней памяти. Но я хочу сохранить их во внутренней памяти. Я сделал свои исследования и нашел, что я нашел по этой ссылке . Я попробовал второе решение cyngus :
public static final String PROVIDER_NAME = "com.provider.Downloads"; public static final Uri CONTENT_URI = Uri.parse("content://"+ PROVIDER_NAME + "/downloads") DownloadManager.Request req = new DownloadManager.Request(Uri.parse(LINK)); req.setDestinationUri(CONTENT_URI);
Он не работал, он дал мне ошибку: java.lang.IllegalArgumentException: Not a file URI: content://com.provider.Downloads/downloads
. Что я делаю неправильно?
В документе doc для DownloadManager.Request
четко указано, что пункт назначения, который вы установили для любого из методов setDestination*
должен находиться на внешнем хранилище и что ваше приложение должно иметь разрешение WRITE_EXTERNAL_STORAGE
:
Установите локальный пункт назначения для загруженного файла. Должен быть URI файла для пути на внешнем хранилище, а вызывающее приложение должно иметь разрешение WRITE_EXTERNAL_STORAGE.
Я не вижу, как можно было бы предоставить путь к внутреннему хранилищу.