2012-06-06 26 views

Trả lời

17

Bạn định cấu hình đối tượng DownloadManager.Request với loại thông tin đó. Trong hướng dẫn, đối tượng Request được tạo và sử dụng trong onClick().

Ví dụ:

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

(trên code đang từ this sample project)

+1

Dòng cuối cùng là thư quan trọng :) Lúc đầu, tôi đã hiểu một chút về điều đó. –

+0

Hi CommonsWare Tôi vẫn không chắc chắn về cách nói cho DownloadManager thư mục nào để lưu trữ các tệp trong: ( Giống như bạn sẽ làm trong Async OutputStream output = new FileOutputStream ("/ sdcard/Myfolder/file_name.extension") ; – Mich

+0

@Mich: 'setDestinationInExternalPublicDir()' và các phương thức liên quan cho phép bạn chỉ định thư mục đầu ra dưới dạng 'Tệp', không phải là' OutputStream'. – CommonsWare

5

Dòng cuối cùng trong tiểu bang trả lời CommonsWare của đích. Anh ấy chỉ sử dụng thư mục tải xuống thường xuyên trên thẻ sdcard, nhưng bạn cũng có thể làm điều này:

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

Nhược điểm của việc sử dụng req.setDestinationUri (uri) hoặc req.setDestinationInExternalPublicDir – Mich

+0

Cảm ơn sự giúp đỡ của bạn – Mich

+6

Bạn cũng có thể sử dụng 'Environment.getExternalStorageDirectory()' thay vì hardcoding thành ** "/ mnt/sdcard" ** – Kalarani

Các vấn đề liên quan