那一刻-逐风 2017-02-05 00:30 采纳率: 100%
浏览 2202
已采纳

Android的DownloadManager.Request使用一个问题,如何打开系统的下载管理?

用adnroid自带的DownloadManager.Request下载,在通知栏,点击下载进度,
怎么才能打开手机系统的下载管理呢?
下载的代码如下:

 DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);
            request.setTitle("云八管家");
            request.setDescription("正在下载...");
            request.setDestinationInExternalPublicDir("cloud8", apkName);
            request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
            request.allowScanningByMediaScanner();
            request.setVisibleInDownloadsUi(true);
            request.setMimeType("application/vnd.android.package-archive");

            DownloadManager downloadManager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
            long enqueue = downloadManager.enqueue(request);
            SPUtil.putLong(mContext, "download", enqueue);

上面是下载的代码执行后,在通知栏会有一个进度条,如果是移动网络会出现如图的情况,如果在wifi状态下就会开始下载,如下图:
这是移动网络下,wifi就会直接下载

然后我想,点击这个通知栏, 通过Intent打开系统的"下载管理".
怎么都找不到是怎么样的Intent,求大神解答下
下面是我下载监听的代码:

 try {
            if (intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) {
                TbLog.i("--------------下载完毕");
                long longExtra = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
                if (longExtra == SPUtil.getLong(context, "download", -11)) {
                    TbLog.i("--------------开始安装新版本");

                    Intent install = new Intent(Intent.ACTION_VIEW);
                    File file = queryDownloadedApk(context);
                    install.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
                    install.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity(install);

                }
            }
             else if(intent.getAction().equals(DownloadManager.ACTION_NOTIFICATION_CLICKED)) {
                                //问题来了这是点击通知栏事件,
                                //在这里,怎么通过代码打开下载管理呢??

                                Intent i = new Intent();
                                ....?
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

我想点击通知栏会打开如下图的界面:
这是系统的下载管理,
通过点击监听打开这个界面怎么做呢?

我看有些app实现了这个功能,跪求解答.

展开全部

  • 写回答

2条回答 默认 最新

  • 那一刻-逐风 2017-02-09 21:49
    关注

    自己研究了下解决了,发现原来很简单,就是打开第三方应用的方法代码如下,给有需要的同学参考下:

     Intent intents =context.getPackageManager().getLaunchIntentForPackage("com.android.providers.downloads.ui");
                    intents.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity(intents);
    

    "com.android.providers.downloads.ui" 就是系统的下载管理的包名

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部