2014-02-20 134 views
2

我使用的下載管理器來下載文件,我希望把下載標準下載文件夾中,以便人們可以很容易地找到使用文件管理器,他們看在最明顯的地方:Android的下載管理器保存到下載文件夾

Uri downloadLocation = Uri.fromFile(new File(Environment.DIRECTORY_DOWNLOADS, filename)); 
request.setDestinationUri(downloadLocation); 
Long reference = downloadManager.enqueue(request); 

但我得到一個異常,因爲這不是一個外部驅動器。

有沒有辦法將文件下載到用戶的下載文件夾?

另外,如果他們沒有外部存儲器,只是內部呢?

謝謝。

回答

9
Uri downloadLocation=Uri.fromFile(new File(Environment.DIRECTORY_DOWNLOADS, filename)); 

這不是你如何使用Environment.DIRECTORY_DOWNLOADS。這不變的是爲使用getExternalStoragePublicDirectory()

File dir=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); 

dir.mkdirs(); 

Uri downloadLocation=Uri.fromFile(new File(dir, filename);; 

注意,目錄可能還不存在,所以你應該叫mkdirs()自己。

另外,如果他們沒有外部存儲器,只是內部呢?

實際上所有的Android設備都有外部存儲器。外部!=可移動。 Android SDK稱爲「外部存儲器」的是用戶可以通過USB電纜訪問的內容,通常與板載閃存中的「內部存儲器」位於同一分區。

相關問題