Pregunta

Necesito saber qué receptores de radiodifusión pueden manejar una determinada intención.

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

¿Es este comportamiento por diseño?

Cualquier otra forma de encontrar todos los receptores instalados por alguna intención?

Gracias.

¿Fue útil?

Solución

Parece que no es posible detectar receptores registrados en el código, de acuerdo con esta reciente mensaje 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 lo mismo.

Otros consejos

Si los receptores estás en interés son los suyos, puede utilizar sendOrderedBroadcast en lugar de emisión regular.

Esto hace que la emisión va a todos los receptores registrados uno por uno, de acuerdo a la prioridad, y finalmente a su receptor de radiodifusión suministrado, que de acuerdo con el resultado / datos transferida a ella, puede averiguar qué receptores manejan esto antes de que.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top