检查活动的存在

时间:2016-09-07 14:02:20

标签: android android-intent

我正在考虑this question中的代码,并执行以下操作:

首先,我创建了一个简单的空项目,其中只有一个Activity名为MainActivity,位于包com.example.plugins中。我编译这个项目并将其安装到我的设备上。该应用程序工作正常。

然后,在另一个项目中我有这个代码:

Intent plugins = new Intent();
plugins.setClassName("com.example.plugins", "MainActivity");
List<ResolveInfo> list = getPackageManager().queryIntentActivities(plugins,
                PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() > 0) {
    tvText.setText("Plugins.");
} else {
    tvText.setText("No Plugins.");
}

我会说这应该有用,但事实并非如此。它给出了“没有插件”。我在这里错过了什么吗?

更新使用时

PackageInfo pi = getPackageManager().getPackageInfo(
                    "com.example.plugins", PackageManager.GET_ACTIVITIES);

我从其他应用程序中获取活动。

2 个答案:

答案 0 :(得分:0)

我认为缺少Intent的MIME类型。

plugins.setType("text/plain");

答案 1 :(得分:0)

设置类名时,必须使用完整名称,包括包:

plugins.setClassName("com.example.plugins", "com.example.plugins.MainActivity");