C'è un modo per catturare/intercettare Intenti dell'applicazione durante il runtime senza modificare il framework Android? La modifica della struttura Android potrebbe richiedere troppo lavoro. Per favore aiutatemi.Cattura/intercettazione di Android Intents durante il runtime
6
A
risposta
11
Per visualizzare Intenti come accadono, logcat eseguito in una shell e filtrare verso il basso per solo gli intenti di questo tipo:
adb logcat | fgrep -i intento
(È inoltre possibile aggiungere un filtro per Intenti è solo la tua app, ma che escluderebbe Intenti inviati alla vostra applicazione dal sistema e da altre applicazioni.)
Questo dovrebbe mostrare Intenti tali come
I/ActivityManager (585): l'attività di inizio: Intento {action = android.intent.action ...}
Per vedere intenti a livello di sistema, provare il Intent Intercept app.
Per vedere tutti gli inviati alle proprie classi, quindi
- In ogni BroadcastReceiver, ignorare onReceive(Context context, Intent intent).
- In ogni attività, chiamare getIntent() per ottenere l'intenzione che ha avviato l'attività.
- In ciascun servizio, ignorare onStartCommand(Intent intent, int flags, int startId) per ottenere l'intenzione che ha avviato il servizio.
Per informazioni su tutte le azioni di intent standard, vedere Intent.
Grazie per i vostri commenti. Sto cercando di vedere tutti gli Intenti espliciti/impliciti della mia applicazione. In dettaglio, ho bisogno di sapere quale Attività ha inviato quale Intento e quale Attività lo ha ricevuto durante il runtime. È possibile? – user3491319
@ user3491319 Ho aggiunto istruzioni per la visualizzazione di Intenti tramite logcat e per l'acquisizione di Intenti inviati a Attività e Servizi, nonché a BroadcastReceivers. – Jerry101