我正在考虑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);
我从其他应用程序中获取活动。
答案 0 :(得分:0)
我认为缺少Intent的MIME类型。
plugins.setType("text/plain");
答案 1 :(得分:0)
设置类名时,必须使用完整名称,包括包:
plugins.setClassName("com.example.plugins", "com.example.plugins.MainActivity");