ADB shell:如何获取将接收BOOT_COMPLETED Intent的BroadcastReceiver列表?

时间:2016-06-10 10:54:32

标签: android android-intent adb adb-shell dumpsys

我正在调试一个应该在设备启动后自动启动的应用程序。为此,我创建了BroadcastReceiver并将其添加到我的AndroidManifest.xml

<receiver android:name=".receiver.StartupBroadcastReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

这在大多数设备上始终有效。然而,在一台设备(MXQ Pro机顶盒)上,它只能在大部分时间工作。到目前为止,我还没有找到任何模式,当它工作时,它什么时候没有。

所以,我想知道哪些BroadcastReceivers实际上是当前在系统中注册的,以接收BOOT_COMPLETED意图。

我玩了

  • pm:但这只能告诉我想要接收意图
  • 的软件包
  • dumpsys:但它的输出是压倒性的,我不知道该找什么

感谢您的任何建议!

1 个答案:

答案 0 :(得分:7)

如果您只是需要确认某些特定接收器已正确注册(即您只关心某个特定包中的接收器,您知道其名称),那么只需使用dumpsys package my.package.name之类的评论中提到了@pskink

但是如果你确实想知道系统范围内所有接收器都接收到一些特定的意图 - 从Android 7.0开始就可以使用

adb shell cmd package query-receivers --brief -a android.intent.action.BOOT_COMPLETED

如果您需要更多详细信息,请删除--brief参数。并列出名称:

adb shell cmd package query-receivers --components -a android.intent.action.BOOT_COMPLETED