2011-01-05 76 views
13

是否有可能显示在android中触发的所有广播事件/意图?我只想知道我是否可以快速确定应用程序是否使用了我可以接入的意图/广播。对于大多数股票Android应用程序,我可以阅读源代码,但是很耗时。显示Android上的所有广播事件

+2

如果没有记录“广播意图/事件”,请不要使用它们。它们不适合第三方开发人员连接,可能会在应用程序更新时发生变化,可能违反EULA或其他许可协议等。 – CommonsWare 2011-01-05 01:20:44

+0

更好的方法是向应用程序开发人员询问,看他们是否同意考虑一些意图/广播“公开”,即他们保证不改变他们,所以其他应用程序可以继续使用它们。 – EboMike 2011-01-05 01:36:07

+0

当然,在openintnts.org上有众多的注册机构,但不幸的是,这个注册机构还不是非常人口稠密。 – EboMike 2011-01-05 01:36:26

回答

18

名单所有的历史广播和注册的广播接收机使用以下终端命令:

dumpsys activity broadcasts 
+1

或更好:'dumpsys活动广播历史' – Mygod 2018-01-19 07:55:28

3

有logcat,您可以从ddms(专用应用程序或eclipse视图)中获取logcat,它应该列出所有广播以及与该intent关联的属性。但是,正如您的帖子中的其他评论者所说的,除非意图已经发布,否则您确实不应该那样做。它可能会改变,或导致其他形式的破坏。虽然我不同意这种说法,但有些人甚至可能会说,如果许可证不兼容是非法的。 (尽管我不喜欢这个派对,但是看起来你并没有静态链接到代码,甚至也没有将它放入你的包中)。

+2

如果我错了,请纠正我,但logcat不会显示发送的广播。它确实显示了活动意图(与startActivity一起发送的活动意图),并具有如下所示的日志:“I/ActivityManager(61):Starting:Intent ...”。 – BoD 2011-05-18 15:52:33

+1

只需要明确一点:即使您不打算在应用程序中使用未公开的内容,也可以显示系统中发送的所有广播,仅用于调试目的。 – BoD 2011-05-18 15:55:41