如何打开Android内置下载应用程序?

时间:2012-07-05 03:10:16

标签: android android-intent android-4.0-ice-cream-sandwich launcher

所以我正在下载东西,它被放入内置的下载应用程序,因为这就是下载管理器的工作原理。我只想让用户点击一个打开内置下载应用程序的按钮。 继承人我的尝试:

btnDownloads.setOnClickListener(new Button.OnClickListener(){
    public void onClick(View v) {
        PackageManager pakMan=MainActivity.context.getPackageManager();
        Log.d("bebr", "Making pak");
        if(pakMan!=null){
            Intent downloadsIntent=new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER).setComponent(new ComponentName("com.android.downloads","com.android.downlods.Downloads"));
            ResolveInfo resolved=pakMan.resolveActivity(downloadsIntent, PackageManager.MATCH_DEFAULT_ONLY);
            Log.d("bebr","Resolving");
            if(resolved!=null){
                Log.d("bebr", "Starting");
                startActivity(downloadsIntent);
            }
        }
    }
});

好的,终于设法得到了解决方案:

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity(LaunchIntent);

2 个答案:

答案 0 :(得分:6)

使用DownloadManager.ACTION_VIEW_DOWNLOADS常量:

startActivity(new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS));

答案 1 :(得分:0)

您必须知道程序包名称才能启动“下载”应用程序。我不确定它在每个设备上都是一样的(虽然它可能是)。您可以通过观察Logcat并启动它来找到它,您应该在日志中看到一些包含其中包名称的行。

但是,您可以完全跳过下载应用程序并直接启动软件包安装程序(当用户在下载应用程序中选择您的apk时会发生这种情况)

只需填写以下代码段中的文件路径:

File appFile = new File("/path/to/your/file.apk");
Uri packageURI = Uri.parse("file:/"+ appFile.getAbsolutePath());
Intent installIntent = new Intent(Intent.ACTION_VIEW);
installIntent.setDataAndType(Uri.fromFile(appFile),"application/vnd.android.package-archive");
startActivity(installIntent);