2012-06-06 16 views

Odpowiedz

17

skonfigurować obiekt DownloadManager.Request z tego rodzaju informacji. W samouczku ten obiekt Request został utworzony i użyty w onClick().

Na przykład:

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

(powyżej kod jest od this sample project)

+1

Ostatnia linia jest ważna :) Na początku trochę się o to potknąłem. –

+0

Hi CommonsWare Nie mam pewności, w jaki sposób poinformować DownloadManager, w jakim folderze przechowywać pliki :(. Coś jak zrobiłbyś w Async OutputStream output = new FileOutputStream ("/ sdcard/Myfolder/file_name.extension") ; – Mich

+0

@Mich: 'setDestinationInEternalRepublicDir()' i pokrewne metody pozwalają ci określić katalog wyjściowy jako 'File', a nie' OutputStream'. – CommonsWare

5

Ostatni wiersz w CommonsWare za odpowiedziami państw przeznaczenia. Po prostu używa zwykłego folderu pobierania na sdcard, ale równie dobrze możesz to zrobić:

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

Co to jest wadą korzystania z req.setDestinationUri (uri) lub req.setDestinationInEternalFlowDirDir – Mich

+0

Dziękuję za pomoc – Mich

+6

Można również użyć 'Environment.getExternalStorageDirectory()' zamiast hardcoding do ** "/ mnt/sdcard" ** – Kalarani