2011-01-06 60 views
17

我想列出安装在手机上的软件包的活动意图过滤器。这仅仅是为了学习体验,我想了解哪些应用可以以隐式意图开始以及如何设置意图过滤器。已安装软件包的列表意向过滤器

Google为他们提供的应用程序在http://developer.android.com/guide/appendix/g-app-intents.html提供了一个表格。我正在为其他应用程序创建一个类似的列表。

我可以使用PackageManager并在代码中挖掘此信息吗?有谁知道现有的应用程序可以做到这一点?任何人都可以指向我现有的示例来执行我​​想要的操作吗?

很抱歉,如果这是类似的问题,如Listing an application's activity and intent-filters?Android -- How to get a list of all available intent filters ?

回答

13

重复AFAIK有没有办法可以列出一个具体的应用可以接收所有的意图。但是,您可以通过自己创建一些意向,然后使用PackageManager的queryIntentActivities,queryIntentservices和queryBroadcastReceivers来查看将对该意图做出什么反应的安装应用程序,从而获得类似的信息(尽管不像扩展信息那样)。

10

让我推荐应用程序“ManifestViewer”。它列出了每个安装的应用程序的意图。 https://play.google.com/store/apps/details?id=jp.susatthi.ManifestViewer

祝您有美好的一天!

+1

我会检查出来。感谢 - https://market.android.com/details?id=uk.co.ashtonbrsc.android.intentintercept&feature=search_result – 2011-07-21 13:50:32

+0

终于到处检查了这一点。再次感谢。 – 2011-08-24 00:44:05

1

的牛轧糖7.0使用下面的命令与我的Nexus 6我得到了所有的意图列表:

adb shell pm dump * | grep ' filter' | cut -d ' ' -f 12 | sort | uniq

  • 首先命令打开外壳到您的设备,并做了PackageManager转储的每包。
  • 然后将输出到grep的管道仅选择带有“过滤器”一词的行。
  • 然后管输出到cut,它给出该行上任何空格的第12个位置上找到的文本。
  • 然后将输出到sort的管道从A排序到Z.
  • 然后管道输出到uniq清除重复的intents。

YMMV - 给这些尝试一次。当你看到你想要的结果时添加下一个管道。例如,不知道adb的先前版本是否会为您提供cut的不同数量的空格。

而且,如果你想要的结果只是一个包装,例如Chrome,你可以使用:

adb shell pm dump com.android.chrome | grep ' filter' | cut -d ' ' -f 12 | sort | uniq