queryBroadcastReceivers没有找到registerReceiver注册的接收者

时间:2010-10-05 09:01:06

标签: android broadcastreceiver

我需要找出哪些广播接收器可以处理给定的意图。

似乎 queryBroadcastReceivers()不会使用 registerReceiver()返回在代码中注册的接收器,而只返回在 AndroidManifest.xml 中声明的接收器。

这是设计的行为吗?

为某些Intent找到所有安装的接收器的其他任何方式?

感谢。

2 个答案:

答案 0 :(得分:6)

根据邮件列表中最近的消息,似乎无法检测代码中注册的接收者:http://groups.google.com/group/android-developers/msg/5fd1cdb24b2a6760

这是令人失望的,因为我正在寻找一种方法来做同样的事情。

答案 1 :(得分:1)

如果您感兴趣的接收者是您的,您可以使用sendOrderedBroadcast而不是常规广播。

这使得广播根据优先级一个接一个地传送到所有注册的接收器,最后到你提供的广播接收器,根据传递给它的结果/数据,它可以找出哪个接收器在它之前处理它。 / p>

您可以查看使用此方法的示例项目: http://www.mannaz.at/codebase/android-activity-foreground-surveillance/