2011-01-05 11 views
13

¿Es de alguna manera posible mostrar todos los eventos de transmisión/intents que se activan en Android? Solo quiero saber si puedo descubrir rápidamente si una aplicación usa intenciones/transmisiones en las que puedo conectar. Para la mayoría de las aplicaciones de stock de Android, puedo leer la fuente pero lleva mucho tiempo.Mostrando todos los eventos de emisión en Android

+2

Si los "intentos/eventos de transmisión" no están documentados, no los utilice. No están destinados a que los desarrolladores de terceros se conecten, pueden cambiar cuando las aplicaciones se actualizan, pueden violar el EULA u otros acuerdos de licencia, etc. – CommonsWare

+0

Un mejor enfoque sería preguntar a los desarrolladores de las aplicaciones y ver si aceptan considerar algunas intenciones/transmisiones "públicas", es decir, prometen no cambiarlas para que otras aplicaciones puedan seguir usándolas. – EboMike

+0

Y está, por supuesto, el registro de origen público en openintents.org, pero desafortunadamente aún no está muy poblado. – EboMike

Respuesta

18

Lista todas las transmisiones históricas y receptores de difusión registrados con el siguiente comando de terminal:

dumpsys activity broadcasts 
+1

O mejor: 'dumpsys activity broadcasts history' – Mygod

3

Hay logcat, que puede obtener desde ddms (ya sea la aplicación dedicada o la vista de eclipse), debe enumerar todas las transmisiones, así como las propiedades que están asociadas con la intención. Sin embargo, como han dicho los otros comentaristas en su publicación, no debería estar haciendo eso a menos que el intento haya sido publicado. Puede cambiar o causar otras formas de destrucción. Aunque no estoy de acuerdo con la declaración, algunas personas incluso llegan a decir que es ilegal si las licencias no son compatibles. (Aunque yo soy de la fiesta que no lo es, ya que no estás enlazando estáticamente al código, ni siquiera lo estás poniendo en tu paquete).

+2

Corrígeme si me equivoco, pero logcat NO mostrará las transmisiones enviadas. Muestra los Intentos de actividad (los enviados con startActivity), con un registro como este: "I/ActivityManager (61): Starting: Intent ...". – BoD

+1

Y para que quede claro: podría ser útil mostrar todas las transmisiones enviadas en el sistema, solo para fines de depuración, incluso si no tiene la intención de utilizar documentos no documentados en su aplicación. – BoD

1

La mejor herramienta que encontré fue Intent Intercept que capta la intención sobre la marcha y permitirá inspeccionar el contenido

Cuestiones relacionadas