2015-08-10 6 views
0

Я использую библиотеку Android-Download-Manager-Pro от GitHub для скачивания файлов на Android.Не удается получить путь к внутреннему хранилищу

После завершения загрузки, в журналах я вижу это:

Create file address: /storage/emulated/0/Downloads/uHlNhjA7c_g_27.jpg 

Это путь к файлу, который был загружен минуту назад. Когда я пытаюсь создать значение файла и получить доступ к нему, я получаю NullPointerException:

File file = new File("/storage/emulated/0/Downloads/uHlNhjA7c_g_27.jpg"); 

Когда я смотрю на длину файла в журналах, это всегда 0. Как правильно получить доступ к загруженному файлу ?

+0

Не могли бы вы связать LIB? – Mauker

+0

@Mauker извините, я опечатаю имя thi lib. Вот так: https://github.com/majidgolshadi/Android-Download-Manager-Pro – neustart47

ответ

0

я нашел решение, я забыл добавить разрешения на файл манифеста:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
-1

Этот адрес может быть правильным. Не уверен в том, что:

File saveFolder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) , "uHlNhjA7c_g_27.jpg"); 

Acording к документации:

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

+0

Я пробовал это, и результат был тот же. getExternalStoragePublicDirectory возвращает только путь, окончательная строка пути с моим изображением то же самое. – neustart47

1

Попробуйте следующее: Environment.getExternalStorageDirectory(). Не путайте имя функции. Прочтите это в документации:

Примечание: не следует путать слово «внешний» здесь. Этот каталог лучше рассматривать как носитель/общий накопитель. Это файловая система, в которой может хранить относительно большой объем данных и распределяется между всеми приложениями (не применяет разрешения). Традиционно это SD-карта, но она также может быть реализована как встроенное хранилище в устройстве , которое отличается от защищенного внутреннего хранилища и может быть , установленным как файловая система на компьютере.

+0

Результат был тот же. Наконец, у меня есть полный путь: /storage/emulated/0/Downloads/uHlNhjA7c_g_27.jpg в файле значение, я видел это в журналах, но он имеет 0 размер – neustart47

+0

Попробуйте разные способы с помощью этой функции (например, /Downloads/uHlNhjA7c_g_27.jpg) – arodriguezdonaire

Смежные вопросы