queryBroadcastReceivers no encuentra receptores registrados con registerReceiver
-
27-09-2019 - |
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.
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 /