2010-09-20 10 views
5

Mam aplikację, która jest jednocześnie nadawcą i odbiorcą standardowej akcji android.intent.action.SET_WALLPAPER. Chcę zrobić kilka rzeczy tylko w przypadku, gdy inna aplikacja nadawała taką intencję.Jak określić nadawcę zamiaru transmisji

Czy istnieje sposób ustalenia, kto zainicjował transmisję w metodzie onReceive programu BroadcastReceiver?

Odpowiedz

4

nr

Jeśli tylko chcesz coś zrobić, kiedy działanie było transmitowane przez inną aplikację (nie swoje), wyobrażam sobie, to powinno być łatwe do ustalenia, że ​​aplikacja nie wysłać tą transmisję , a więc to był ktoś inny ..

+0

oczywiście, ale w ten sposób muszę użyć jakiegoś znacznika czasu/flagi gdzieś w mojej aplikacji - nie wysyłam jawnie audycji, robi to Android, gdy wołam setWallpaper. – Goran

+0

Zgadza się. –

5

Jeśli wszystko, co Cię interesuje, to czy zostało wysłane przez Twoją aplikację, możesz dodać dodatkowy dodatek do Intencji za każdym razem, gdy go stworzysz. Na przykład:

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

Następnie, po otrzymaniu transmisji, można sprawdzić

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

Aby sprawdzić, czy stworzył intencji.

Powiązane problemy