2010-09-20 17 views
5

Tengo una aplicación que es al mismo tiempo un transmisor y un receptor de la acción estándar android.intent.action.SET_WALLPAPER. Quiero hacer algunas cosas solo en un caso cuando otra aplicación transmitió este intento.Cómo determinar el remitente de Broadcast Intent

¿Hay alguna forma de determinar quién inició una transmisión en el método onReceive de un BroadcastReceiver?

Respuesta

4

Si sólo quiere hacer algo cuando una acción fue transmitido por otra aplicación (es decir, no el suyo), me imagino que debe ser fácil de determinar que su aplicación no hizo enviar esta emisión y, por lo tanto, era otra persona ..

+0

por supuesto, pero de esa manera tengo que usar un tipo de marca de tiempo/marca en alguna parte de mi aplicación - no envío explícitamente una transmisión, lo hace Android cuando llamo a setWallpaper. – Goran

+0

Eso es correcto. –

5

Si todo lo que le interesa es si lo envió su aplicación o no, lo que puede hacer es agregar un extra al Intento cada vez que cree una. Por ejemplo:

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

Entonces, cuando se recibe la emisión, se puede comprobar

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

Para ver si ha creado la intención.

Cuestiones relacionadas