2012-06-06 13 views

Respuesta

17

se configura el objeto DownloadManager.Request con ese tipo de información. En el tutorial, ese objeto Request se crea y se utiliza en onClick().

Por ejemplo:

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"); 

(código anterior es de this sample project)

+1

La última línea es la más importante :) Al principio tropecé un poco con eso. –

+0

Hola CommonsWare Todavía no estoy seguro de cómo decirle a DownloadManager en qué carpeta almacenar los archivos :(. Algo así como lo haría en Async OutputStream output = new FileOutputStream ("/ sdcard/Myfolder/file_name.extension") ; – Mich

+0

@Mich: 'setDestinationInExternalPublicDir()' y los métodos relacionados le permiten especificar el directorio de salida como un 'Archivo', no como' OutputStream'. – CommonsWare

5

La última línea de la respuesta de los Estados CommonsWare el destino. Simplemente usa la carpeta de descarga normal en la tarjeta SD, pero también podría hacer esto:

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

¿Cuál es la desventaja de usar req.setDestinationUri (uri) o req.setDestinationInExternalPublicDir – Mich

+0

Gracias por su ayuda – Mich

+6

También podría usar 'Environment.getExternalStorageDirectory()' en lugar de hardcoding a ** "/ mnt/sdcard" ** – Kalarani

Cuestiones relacionadas