2010-09-20 9 views
5

Ich habe eine Anwendung, die gleichzeitig ein Broadcast-Sender und Empfänger der Standardaktion android.intent.action.SET_WALLPAPER ist. Ich möchte nur dann etwas tun, wenn eine andere Anwendung diese Absicht ausstrahlt.So ermitteln Sie den Absender der Broadcast Intent

Gibt es eine Möglichkeit festzustellen, wer eine Broadcast in OnReceive-Methode eines BroadcastReceiver initiiert hat?

Antwort

4

Nr

Wenn Sie nur etwas tun, wenn eine Aktion von einer anderen App ausgestrahlt wurde (dh nicht von Ihnen), stelle ich mir es leicht sein sollte, um festzustellen, dass Ihre App nicht diese Übertragung senden tat und deshalb war es jemand anderes.

+0

natürlich, aber auf diese Weise muss ich Art von Zeitstempel/Flag irgendwo in meiner App verwenden - ich sende nicht explizit eine Sendung, es wird von Android gemacht, wenn ich setWallpaper aufrufen. – Goran

+0

Das ist richtig. –

5

Wenn Sie nur daran interessiert sind, ob es von Ihrer App gesendet wurde oder nicht, können Sie jedes Mal, wenn Sie eines erstellen, ein Extra zum Intent hinzufügen. Zum Beispiel:

broadcastIntent.putExtra('com.android.app.EXTRA_APP_CREATED', true) 

Dann, wenn Sie die Sendung erhalten haben, können Sie überprüfen

if (intent.getExtra('com.android.app.EXTRA_APP_CREATED', false) { ... } 

Um zu sehen, ob Sie die Absicht erstellt.