Android Can';t使用程序包名称启动与我的应用程序不同的应用程序

Android Can';t使用程序包名称启动与我的应用程序不同的应用程序,android,google-chrome,Android,Google Chrome,我正在尝试从我的应用程序打开Chrome应用程序。代码很简单 我使用以下代码获得了Chrome应用程序的软件包名称: PackageManager manager = Values.activity.getPackageManager(); Intent i = new Intent(Intent.ACTION_MAIN, null); i.addCategory(Intent.CATEGORY_LAUNCHER); List<Re

我正在尝试从我的应用程序打开Chrome应用程序。代码很简单

我使用以下代码获得了Chrome应用程序的软件包名称:

    PackageManager manager = Values.activity.getPackageManager();

        Intent i = new Intent(Intent.ACTION_MAIN, null);
        i.addCategory(Intent.CATEGORY_LAUNCHER);
        List<ResolveInfo> availableActivities = manager.queryIntentActivities(i, 0);
        for(ResolveInfo ri:availableActivities){
            apps.add(ri.activityInfo.packageName);
        }

        //the package name of Chrome from packagemanager is "com.android.chrome"
但任何事情都会发生错误,我的日志上说:

12-28 20:28:52.298: I/ActivityManager(482): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.android.chrome cmp=com.android.chrome/com.google.android.apps.chrome.Main} from pid 20474

我错过了什么?从packagemanager检索到的包名是否错误?

以下是从应用程序启动浏览器的通用代码:

                String uriString = "http://stackoverflow.com/";
                Intent intent = new Intent();
                intent.setData(Uri.parse(uriString));
                intent.setAction(Intent.ACTION_VIEW);

                if (intent.resolveActivity(getPackageManager())!= null) {
                    startActivity(intent);
                }   else {
                    // Any browser is not available
                }

我可以知道你为什么只想推出Chrome吗?

谢谢你的回答。但打开Chrome应用程序只是一个例子。我想创建许多按钮来打开其他应用程序。那么你的问题就错了。你应该清楚地提到你正在做什么和你想要实现什么,因为你没有为我的目标做足够的准备。我试图在我的launcher应用程序中打开另一个应用程序。但在我的启动器应用程序的主要活动中,清单中有默认和主筛选器,无法打开其他应用程序。我不知道为什么。我只是做了一个变通。Android系统在启动其他应用程序时应用了一些安全限制。第一个问题是,第二个应用程序是否定义了一些操作来启动这些组件。其次,可以使用android:protectionLevel=“signature”定义权限。您可以使用getActivityInfo(ComponentName组件,int标志)检索我们所知道的关于特定活动类的所有信息。
                String uriString = "http://stackoverflow.com/";
                Intent intent = new Intent();
                intent.setData(Uri.parse(uriString));
                intent.setAction(Intent.ACTION_VIEW);

                if (intent.resolveActivity(getPackageManager())!= null) {
                    startActivity(intent);
                }   else {
                    // Any browser is not available
                }