2010-10-05 11 views
9

Necesito averiguar qué receptores de difusión pueden manejar un intento determinado.queryBroadcastReceivers no encuentra los receptores registrados con registerReceiver

Parece que queryBroadcastReceivers() no devuelve receptores registrados en el código utilizando registerReceiver() pero sólo receptores declaran en AndroidManifest.xml.

¿Es este comportamiento por diseño?

Cualquier otra forma de encontrar todos receptores instalados para algunos Intent?

Gracias.

+0

Hola de nuevo, alguien puede ayudar? – Assaf

Respuesta

6

Parece que no es posible detectar receptores registrados en el código, de acuerdo con este mensaje reciente en la lista de correo: http://groups.google.com/group/android-developers/msg/5fd1cdb24b2a6760

Esto es decepcionante, ya que estaba buscando una manera de hacer la misma cosa.

+0

Tengo el mismo problema en este momento, y tu respuesta es de 3 años. Ahora, ¿hay una nueva forma de listar los receptores de difusión registrados con 'registerReceiver()'? – Vincent

+0

@Vincent parece que sigue siendo el mismo, no hay tal manera. – sandrstar

1

Si los receptores que le interesan son suyos, puede usar sendOrderedBroadcast en lugar de la transmisión regular.

Esto hace que la transmisión se dirija a todos los receptores registrados uno por uno, de acuerdo con la prioridad, y finalmente a su receptor de emisión suministrado, que de acuerdo con el resultado/datos transmitidos, puede determinar qué receptores manejaron esto antes.

Puede comprobar este proyecto ejemplo que utiliza este método: http://www.mannaz.at/codebase/android-activity-foreground-surveillance/

Cuestiones relacionadas