Android: ошибка времени выполнения «Невозможно создать каталог», при использовании класса DownloadManager, метод setDestinationInExternalPublicDir

Я получаю это исключение:

10-24 17:08:19.711: E/AndroidRuntime(1379): FATAL EXCEPTION: main
10-24 17:08:19.711: E/AndroidRuntime(1379): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.campusfqm.cfqm/br.com.campusfqm.cfqm.DownloadManagerActivity}: java.lang.IllegalStateException: Unable to create directory: /mnt/sdcard/Download
10-24 17:08:19.711: E/AndroidRuntime(1379):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at android.app.ActivityThread.access$1500(ActivityThread.java:123)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at android.os.Looper.loop(Looper.java:126)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at android.app.ActivityThread.main(ActivityThread.java:3997)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at java.lang.reflect.Method.invokeNative(Native Method)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at java.lang.reflect.Method.invoke(Method.java:491)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at dalvik.system.NativeStart.main(Native Method)
10-24 17:08:19.711: E/AndroidRuntime(1379): Caused by: java.lang.IllegalStateException: Unable to create directory: /mnt/sdcard/Download
10-24 17:08:19.711: E/AndroidRuntime(1379):     at android.app.DownloadManager$Request.setDestinationInExternalPublicDir(DownloadManager.java:466)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at br.com.campusfqm.cfqm.DownloadManagerActivity.download(DownloadManagerActivity.java:51)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at br.com.campusfqm.cfqm.DownloadManagerActivity.onCreate(DownloadManagerActivity.java:43)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
10-24 17:08:19.711: E/AndroidRuntime(1379):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700)
10-24 17:08:19.711: E/AndroidRuntime(1379):     ... 11 more

Используя класс DownloadManager, с этим кодом:

DownloadManager.Request request = new DownloadManager.Request(Uri.parse("http://centraldemangas.com.br/forum/dbtech/vbshop/images/gifts/pidgey.gif"));
          request.setAllowedNetworkTypes(Request.NETWORK_MOBILE | Request.NETWORK_WIFI);
          request.setAllowedOverRoaming(false);
          request.setTitle("pidgey.gif");
          request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"pid.gif");
          id = downloadManager.enqueue(request);

Исключение указывает наrequest.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"pid.gif");

Ответы на вопрос(2)

ВидетьWRITE_EXTERNAL_STORAGE а такжеREAD_EXTERNAL_STORAGE разрешений

 Cétia24 окт. 2012 г., 21:28
Есть ли на нем sdcard (проверка / mnt / sdcard)?
 MaiaVictor24 окт. 2012 г., 21:23
Да, у меня есть те. Я запускаю его на виртуальной машине, это имеет значение?
Решение Вопроса

Невозможно создать каталог: / mnt / sdcard / Загрузить

Попробуй это:

String name = Environment.getExternalStorageDirectory().getAbsolutePath();

name += "/YourDirectoryName/" ;

Ваш ответ на вопрос