Índice

Broadcast Receiver

El sistema de Broadcast Receiver (receptor de eventos) permite enviar y recibir eventos mediante intents (intenciones).

1. Recibir un evento

Para poder recibir un evento mediante un Broadcast Receiver hay que crear una clase que sobrecargue la clase BroadcastReceiver. Esta clase tendrá solamente el método onReceive, que se invoca cuando se recibe un evento al que se ha suscrito la clase.

El primer paso consiste en definir el tipo de evento al que se desea suscribir. En el siguiente ejemplo se creará un Broadcast Receiver que permita suscribirse a la recepción de mensajes.

<receiver android:name="MySmsReceiver" android:exported="false"> 
  <intent-filter> 
  <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
  </intent-filter> 
</receiver>
  • El atributo exported permite indicar si otras actividades que no pertenecen a su aplicación pueden usar el Broadcast Receiver.

  • El elemento action permite especificar el tipo de evento que desea recibir (SMS_RECEIVED = recepción de mensajes).

Todo ello sin olvidar el permiso que permite recibir SMS.

<uses-permission android:name="android.permission.RECEIVE_SMS" />

Puede registrar un Broadcast directamente en el método onResume de una actividad, por ejemplo:

IntentFilter filter = new IntentFilter(); 
filter.addAction("android.provider.Telephony.SMS_RECEIVED"); 
BroadcastReceiver smsReceiver = new BroadcastReceiver() { 
@Override ...