Android中使用DownloadManager类来管理数据下载的教程

2019-12-10 18:07:49丽君

下面的代码片段是在外部存储中指定一个任意的保存位置的方法:

request.setDestinationUri(Uri.fromFile(f)); 

f是一个File对象。
如果下载的这个文件是你的应用所专用的,你可能会希望把这个文件放在你的应用在外部存储中的一个专有文件夹中。注意这个文件夹不提供访问控制,
所以其他的应用也可以访问这个文件夹。在这种情况下,如果你的应用卸载了,那么在这个文件夹也会被删除。
下面的代码片段是指定存储文件的路径是应用在外部存储中的专用文件夹的方法:

request.setDestinationInExternalFilesDir(this, 
 Environment.DIRECTORY_DOWNLOADS, “Bugdroid.png”); 


如果下载的文件希望被其他的应用共享,特别是那些你下载下来希望被Media Scanner扫描到的文件(比如音乐文件),那么你可以指定你的下载路径在
外部存储的公共文件夹之下,下面的代码片段是将文件存放到外部存储中的公共音乐文件夹的方法:

request.setDestinationInExternalPublicDir(Environment.DIRECTORY_MUSIC, 
 "Android_Rock.mp3"); 

在默认的情况下,通过Download Manager下载的文件是不能被Media Scanner扫描到的,进而这些下载的文件(音乐、视频等)就不会在Gallery和Music Player这样的应用中看到。
为了让下载的音乐文件可以被其他应用扫描到,我们需要调用Request对象的allowScaningByMediaScanner方法。
如果我们希望下载的文件可以被系统的Downloads应用扫描到并管理,我们需要调用Request对象的setVisibleInDownloadsUi方法,传递参数true。