Android - 如何获取所有可用意图过滤器的列表?

Muh*_*hab 26 android intentfilter broadcastreceiver android-activity

我搜索Android文档,但由于一些疯狂的原因,我无法找到所有可用的intent过滤器列表.

我找到了一个意图过滤器,它会做类似的事情,通过广播接收器通知我特定活动(示例浏览器或电子邮件)已经启动或在前台.任何人都可以帮助我.

Rib*_*ibo 36

PackageExplorer列出了设备中应用中定义的所有intent-filters

回答您的问题:您创建了想要用于在程序查找服务或活动时选择活动的intent-filter.因此,包中的每个活动都定义了自己的intent-filters列表.

我发现拥有设备上所有应用程序定义的所有intent-filters列表很有用 - 因此会知道系统在处理intent时会调用哪些应用程序.我在Android Market上放了一个免费的应用程序,搜索"Package Explorer",搜索它可以在你的设备上找到的所有应用程序,解码AndroidManifest.xml文件并显示所有应用程序定义的所有intent-filters的列表.所有intent-filters的表可以按Action,Category,Data字段(即scheme或mimetype),包名称或intent-filter类型进行排序,这样您就可以在设备上找到响应各种Actions或Categories的所有Activites.

Package Explorer还会收集清单中的所有uses-permissions字段,并显示哪些应用需要哪些权限.因此,您可以找到所有使用"SEND_SMS"或类似内容的软件包.单击包的名称将显示包的已解码(未压缩二进制)AndroidManifest.xml.


Tom*_*ser 15

如果您不在设备上,则可以运行以下命令:

adb shell dumpsys package r

这将为您提供所有静态注册的意图过滤器的列表.


Fal*_*rri 5

你不会找到那个.意图过滤器由应用程序定义.您必须查看您感兴趣的paritcular应用程序的文档.

  • 这不应该是公认的答案 (3认同)

Hei*_*upp 5

http://www.openintents.org/en/上有一个“数据库”,它试图收集已知的意图过滤器。此外,Intent的缺点也列出了一些。


sir*_*von 5

这篇文章是旧的,但对于从安装在特定android上的应用程序查找清单信息的任何人,请将此dodd此GOD应用程序:

https://play.google.com/store/apps/details?id=jp.susatthi.ManifestViewer


not*_*bit 5

扩展 Tom Fraser 的答案,最好的方法是使用带有 grep 和 sort 的dumpsys

dumpsys activity broadcasts |grep -iE ".+\.[0-9A-Z_\-]+:$" |sort
Run Code Online (Sandbox Code Playgroud)

grep 表达式确保只捕获以类似格式的意图结尾的行...blahblah.SOME_INTENT:。它可能无法涵盖所有​​内容,但这是一个好的开始。