我想在背景中从URL下载视频,就像我们在Google Play的后台安装apk文件一样。我想在通知栏上显示下载指示器,就像我们下载或安装apk文件时显示的一样。如果有任何建议或想法,那么建议我如何在我的项目中完成这项任务。
答案 0 :(得分:2)
你可以选择安卓DownLoadManager。在某种程度上你想在你的活动中这样做
String mUrl="your video url";
DownloadManager manager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
Request request = new Request(Uri.parse(mUrl));
request.setDestinationInExternalFilesDir(getApplicationContext(), Environment.DIRECTORY_DOWNLOADS, your_fileName);
request.setNotificationVisibility(Request.VISIBILITY_VISIBLE);
request.setAllowedOverRoaming(false);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
manager.enqueue(request);
setNotificationVisibility()
- >在通知栏(窗口)中显示下载通知以及下载进度。
下面是三种方法,您可以在其中为下载的文件路径选择目的地。
1. setDestinationInExternalFilesDir(Context context, String dirType, String subPath)
将下载文件的本地目标设置为应用程序外部文件目录中的路径(由getExternalFilesDir(String)返回。
2。 setDestinationInExternalPublicDir(String dirType, String subPath)
将下载文件的本地目标设置为公共外部存储目录中的路径(由getExternalStoragePublicDirectory(String)返回)。
3. setDestinationUri(Uri uri)
设置下载文件的本地目标。
答案 1 :(得分:0)
使用下载管理器,
private void for_call_download() {
File folder = Environment.getExternalStoragePublicDirectory(DOWNLOAD_FOLDER_NAME);
if (!folder.exists() || !folder.isDirectory()) {
folder.mkdirs();
}
try {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(APK_URL));
request.setDestinationInExternalPublicDir(DOWNLOAD_FOLDER_NAME, DOWNLOAD_FILE_NAME);
request.setTitle(SessionName);
request.setDescription("" + SessionDesc);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setVisibleInDownloadsUi(false);
request.setMimeType("application/cn.trinea.download.file");
downloadId = downloadManager.enqueue(request);
} catch (IllegalStateException i) {
showAlert(context, "Sorry Some Problem");
i.printStackTrace();
}
updateView();
status_download = true;
}