那一刻-逐风 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条)

报告相同问题?

悬赏问题

  • ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
  • ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
  • ¥15 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动