Есть некоторые подобные вопросы уже задавали, но мой немного отличается, у меня есть следующий код, чтобы сделать загрузку на моем приложении:поведения DownloadManager по созданию каталога
DownloadManager.Request request = new DownloadManager.Request(uri)
.setTitle(fileInfo.getFileName())
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,
getString(R.string.app_name) + File.separator + fileInfo.getFileName());
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
request.allowScanningByMediaScanner();
}
manager.enqueue(request);
Это прекрасно работает без жалоб на по крайней мере, Samsung S4, Nexus 4, Nexus 7, однако недавно я узнал, что на некоторых устройствах не удается создать каталог с ошибкой:
Так что теперь я проверяю каталог и создаю, если он не существует с
File downloadDir = new File (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
+ File.separator + getString(R.string.app_name));
if (!downloadDir.exists()){
boolean mkdir = downloadDir.mkdir();
}
Мой вопрос, почему DownloadManager ведет себя отличается ли это Android версии или поставщика проблема и что ожидаемое поведение, так как документация getExternalStoragePublicDirectory
утверждает, что она может бросаться IllegalStateException: IllegalStateException If the external storage directory cannot be found or created.
Я предположил, что это должен попытаться создать каталог в этом случае не должно быть никаких оснований или необходимости для меня, чтобы использовать функцию mkdir
, но это не так
вы можете вставить журналы –
@RahulPatil я могу, но это скорее ожидаемый вопрос поведение, ошибка ИПС 'Не удалось создать целевой файл/хранение/эмулировать/0/Скачать/μECS/AU3110005_AU3110006_Celulas não linfoides.pdf at com.android.providers.downloads.Helpers.getFullPath (Helpers.java:204) 'его исправлено, если я создаю каталог μECS сам, как я сказал по вопросу, я просто хочу знать, или не документом, я не могу понять – forcewill