2012-08-10 19 views
5

Ho visto in alcuni sdks di reti pubblicitarie Android che stanno dichiarando BroadcastReceiver senza filtri di intent. Qualcosa del genere:Android BroadcastReceiver senza filtri di intent

<receiver android:name="com.example.SampleReceiver" /> 

La mia ipotesi è che tale ricevitore catturerebbe tutti gli eventi possibili. Così ho provato a fare io stesso e creato un SampleReceiver:

public class SampleReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     System.out.println("Event captured: " + intent.getAction()); 
    } 
} 

ho lanciato l'applicazione, ha cercato di sparare alcuni eventi facendo varie azioni sul mio telefono e ho notato che onReceive() non si chiamava nemmeno una volta.

Quindi la domanda è: come funziona un BroadcastReceiver senza filtri di intent? Forse richiede che i filtri intent vengano creati tramite codice? Se é cosi, come? Se no, allora perché non sta ricevendo alcun evento? Cosa sta succedendo qui?

+0

Hai grande Scrivere una valutazione ora :) – Jin35

risposta

0

Penso che la seguente domanda/risposta dovrebbe darvi qualche indizio:

Create an IntentFilter in android that matches ALL intents

+0

Essa suggerisce che tale BroadcastReceiver non riceve tutti gli eventi . Ma rimane ancora la domanda: che cosa sta facendo quel ricevitore, allora? Grazie comunque. –

+0

Sospetto che abbiano impostato un filtro intent dal codice che non sei in grado di vedere. – wojciii

+0

Ma non risponde ancora come lo fanno :) –

5

Se non si dispone di alcuni filtri intento, l'unico modo per ricevere qualcosa è quello di chiamare il ricevitore in modo esplicito. Questo sarebbe simile a questa:

context.sendBroadcast(new Intent(context, MyBroadcastReceiverClass.class)); 

Un altro ragazzo già risposto a questa domanda nel seguente post: https://stackoverflow.com/questions/10051256/broadcast-receiver-not-receiving

+0

Se vuoi testarlo con la riga di comando puoi eseguire 'adb shell am -n com.example/.SampleReceiver' – Jamby

Problemi correlati