Android:使用Intent过滤器搜索已安装的包

时间:2013-12-27 23:29:34

标签: android android-intent intentfilter

我不知道之前是否有过这样的任务,试图搜索并一无所获。

如果包含特定的intent过滤器,可以通过查看它的清单来搜索和显示已安装的包吗?

Ex:我想在其清单

上显示包含自定义Intent Filter的已安装软件包
<intent-filter>
      <action android:name="com.example.one" />
</intent-filter>

作为示例,如果应用程序存在,我想在textview上创建“Application Exist”文本

if (...//checking if application exist or not) {
      textview.setText("Application Exist");
}
else {
...
}

1 个答案:

答案 0 :(得分:2)

查看queryIntentActivities()

因此,您可以使用正确的过滤器匹配鉴别器来创建意图。

Intent intent = new Intent("my_awesome.package.hasa.custom.ACTION!");
intent.addCategory("typingisfunfunfun");
intent.setData(Uri.parse("data://foo/bar"));
PackageManager pm = getPackageManager();
List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, PackageManager.GET_RESOLVED_FILTER);
if(resolveInfo.isEmpty()) {
  Log.i("NoneResolved", "No Activities");
} else {
  Log.i("Resolved!", "There are activities" + resolveInfos);
}