ADM(下载管理器)中有一个功能,如果用户触摸一个下载链接(不是网页),ADM(下载管理器)将显示为具有下载文件能力的应用程序。
如果用户点击下载链接,我的应用程序将显示为具有下载文件能力的应用程序,我该怎么办?
ADM(下载管理器)中有一个功能,如果用户触摸一个下载链接(不是网页),ADM(下载管理器)将显示为具有下载文件能力的应用程序。
如果用户点击下载链接,我的应用程序将显示为具有下载文件能力的应用程序,我该怎么办?
下载数据类
private long DownloadData (Uri uri, View v) {
long downloadReference;
// Create request for android download manager
downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(uri);
//Setting title of request
request.setTitle("Data Download");
//Setting description of request
request.setDescription("Android Data download using DownloadManager.");
//Set the local destination for the downloaded file to a path
//within the application's external files directory
if(v.getId() == R.id.DownloadMusic)
request.setDestinationInExternalFilesDir(MainActivity.this,
Environment.DIRECTORY_DOWNLOADS,"AndroidTutorialPoint.mp3");
else if(v.getId() == R.id.DownloadImage)
request.setDestinationInExternalFilesDir(MainActivity.this,
Environment.DIRECTORY_DOWNLOADS,"AndroidTutorialPoint.jpg");
//Enqueue download and save into referenceId
downloadReference = downloadManager.enqueue(request);
Button DownloadStatus = (Button) findViewById(R.id.DownloadStatus);
DownloadStatus.setEnabled(true);
Button CancelDownload = (Button) findViewById(R.id.CancelDownload);
CancelDownload.setEnabled(true);
return downloadReference;
}
上述代码说明:
downloadReference:这是一个唯一的ID,我们将参考特定的下载请求。
请求:将通过 getSystemService 创建 DownloadManager 的实例
下载服务。使用 DownloadManager.Request(uri) 在下一条语句中生成一个新请求。
setDestinationInExternalFilesDir:这将用于将文件保存在外部下载文件夹中。
downloadManager.enqueue(request):将对应于请求的新下载入队。一旦下载管理器准备好执行它并且连接可用,下载将自动开始。
来源:https ://www.codeproject.com/Articles/1112730/Android-Download-Manager-Tutorial-How-to-Download