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

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-10 05: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条)

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧