2012-06-06 8 views

ответ

17

настраивается DownloadManager.Request объект с такого рода информацией. В учебнике этот объект создается и используется в onClick().

Например:

DownloadManager.Request req=new DownloadManager.Request(uri); 

req.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI 
           | DownloadManager.Request.NETWORK_MOBILE) 
    .setAllowedOverRoaming(false) 
    .setTitle("Demo") 
    .setDescription("Something useful. No, really.") 
    .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, 
             "test.mp4"); 

(выше код из this sample project)

+1

Последняя строка важна :) Сначала я немного наткнулся на это. –

+0

Hi CommonsWare Я все еще не уверен в том, как сказать DownloadManager, какую папку хранить в файлах :(. Что-то вроде вы бы сделали в Async OutputStream output = new FileOutputStream ("/ sdcard/Myfolder/file_name.extension") – Mich

+0

@Mich: 'setDestinationInExternalPublicDir()' и связанные с ним методы позволяют указать выходной каталог как 'File', а не как' OutputStream'. – CommonsWare

5

Последняя строка в ответ государств CommonsWare в пункт назначения. Он просто использует обычную папку для скачивания на SD-карте, но вы также можете это сделать:

req.setDestinationInExternalPublicDir("/mnt/sdcard/Myfolder", "file_name.extension"); 
+2

Что является недостатком использования req.setDestinationUri (uri) или req.setDestinationInExternalPublicDir – Mich

+0

Благодарим за помощь – Mich

+6

Вы также можете использовать 'Environment.getExternalStorageDirectory()' вместо hardcoding для ** "/ mnt/sdcard" ** – Kalarani