0% encontró este documento útil (0 votos)
207 vistas7 páginas

Introducción al Broadcast Receiver en Android

Este documento describe el uso de Broadcast Receivers en Android. Un Broadcast Receiver permite que una aplicación reciba eventos del sistema como baja batería o mensajes SMS. Los Broadcast Receivers pueden registrarse para recibir diferentes tipos de eventos a través del manifiesto de la aplicación. También se discuten los conceptos de Intent, IntentFilter, y cómo comunicar actividades a través de un Broadcast Receiver personalizado.

Cargado por

Pitter Pastor
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
207 vistas7 páginas

Introducción al Broadcast Receiver en Android

Este documento describe el uso de Broadcast Receivers en Android. Un Broadcast Receiver permite que una aplicación reciba eventos del sistema como baja batería o mensajes SMS. Los Broadcast Receivers pueden registrarse para recibir diferentes tipos de eventos a través del manifiesto de la aplicación. También se discuten los conceptos de Intent, IntentFilter, y cómo comunicar actividades a través de un Broadcast Receiver personalizado.

Cargado por

Pitter Pastor
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

“Universidad Nacional de Trujillo”

Escuela Académica-Profesional:
Ingeniería de Sistemas
Curso:
Temas Avanzados de Ingeniería de Sistemas II
Tema:
Broadcast receiver
Integrantes:
1. Aranda Carranza, Jean Piero
2. Pastor Varas, Pitter
3. Rodríguez Lázaro, Héctor Eduardo
4. Sucre Gamboa, Carlos Andrés
5. Yoplac Torres Miguel Humberto
Docente:
Ing. Robert Sanchez Ticona
Ciclo:
Decimo Ciclo

2019-Trujillo
BroadcastReceiver

Un Broadcast Receiver es el componente que está destinado a recibir y responder ante eventos
globales generados por el sistema, como un aviso de batería baja, un SMS recibido, un SMS enviado,
una llamada, un aviso de la tarjeta SD, etc. y también a eventos producidos por otras aplicaciones.

Un BroadcastReceiver es básicamente un mecanismo para transmitir intenciones a través del


sistema operativo para realizar acciones específicas. Una definición clásica siendo

"Un receptor de difusión es un componente de Android que le permite registrarse para eventos del
sistema o de la aplicación".

Intent

Un intent sirve para invocar componentes, en android entendemos por componentes


las activities, Que son componentes de UI [Interfaz gráfica], services, Código ejecutándose en
segundo plano, broadcast receivers, Código que responde a un mensaje de transmisión [Broadcast
messages] y proveedores de contenido, código que abstráe los datos.

Básicamente nos permiten llamar a aplicaciones externas a la nuestra, lanzar eventos a los que otras
aplicaciones puedan responder, lanzar alarmas etc.

IntentFilter

Cuando creamos una nueva actividad, servicio o receptor broadcast, podemos informar al sistema
del tipo de intenciones implícitas que se pueden resolver con nuestro componente. Para ello
utilizaremos un filtro de intenciones mediante la etiqueta <intent-filter> de [Link].

Cuando desarrollamos una aplicación, lo habitual es utilizar intenciones explicitas, que se resuelven
utilizando el nombre de la clase. Por lo tanto, si vamos a llamar a nuestro componente de forma
explícita, no tiene sentido crear un filtro de intenciones.

LocalBroadcastManager es una forma de enviar o recibir transmisiones dentro de un proceso de


solicitud. Este mecanismo tiene muchas ventajas.

1. Ya que los datos permanecen dentro del proceso de la aplicación, los datos no se pueden
filtrar.
2. Las transmisiones locales se resuelven más rápido, ya que la resolución de una transmisión
normal ocurre en el tiempo de ejecución en todo el sistema operativo.
¿Qué es Broadcast receiver?

Un receptor puede ser registrado a través del archivo [Link] o por el método
[Link]().

public class MyReceptor extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

Aquí he tomado un ejemplo de ACTION_BOOT_COMPLETED que es disparado por el sistema una


vez que Android ha completado el proceso de arranque.

Ejemplo a través del archivo “manifest”.

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<receiver android:name="MyReceiver">

<intent-filter>

<action android:name="[Link].BOOT_COMPLETED">
</action>

</intent-filter>

</receiver>

</application>

USANDO ORDERED BROADCASTS

Ordered broadcasts son usados cuando necesitas especificar una prioridad para un broadcast
listeners.

En este ejemplo el primerReceptor recibirá un broadcast mucho antes que el segundoReceptor:

final int highPriority = 2;

final int lowPriority = 1;

final String action = "action";

// intent filter para el primer receptor con alta prioridad

final IntentFilter primerFilter = new IntentFilter(action);

first [Link](highPriority);

final BroadcastReceiver primerReceptor = new MyReceiver();

// intent filter para el segundo receptor con prioridad baja

final IntentFilter segundoFilter = new IntentFilter(action);

[Link](lowPriority);

final BroadcastReceiver segundoReceptor = new MyReceiver();

// Registrar nuestros receptores

[Link](primerReceptor, primerFilter);

[Link](segundoReceptor, segundoFilter);

// enviar un ordered broadcast

[Link](new Intent(action), null);


Sticky broadcast

Antes se definió broadcast como un disparador de información soltado por el sistema Android, la
diferencia de los sticky broadcast sobre un broadcast común es que son estáticos, pueden ser
consultados regularmente mientras los otros son volátiles.

El ejemplo clásico de un sticky broadcast es el nivel de batería, si una aplicación busca conocer el
nivel de la batería, puede ser accedido en cualquier momento mientras tenga el permiso para ello.

Mientras no es recomendable enviar sticky broadcast debido a consideraciones de seguridad, estas


son muy útiles para obtener datos del equipo.

Como habilitar/deshabilitar “Broadcast Receiver”

Los receptores de eventos o acciones del equipo no tienen que estar siempre activos, ya que como
es natural consumen recursos, asi que es necesario que solo estén activo en los momentos debidos,
para poder tener un control de cuando activarlo y desactivarlo se debe hacer uso de la clase
PacketManager a la cual se referencia un componente que en nuestro caso es el “Broadcast
receiver”
ComponentName componentName = new ComponentName(context,
[Link]);
PackageManager packageManager = [Link]();

Una vez se tiene abstraídas estas entidades se aplican códigos simples de cambio de estado de
componente como se ve abajo.
[Link](
componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);

[Link](
componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);

Comunica dos actividades a través del Broadcast Receiver personalizado

• Puede comunicar dos actividades para que la Actividad A pueda ser notificada de un evento
que ocurre en la Actividad B.
BroadcastReceiver para manejar eventos BOOT_COMPLETED

• El siguiente ejemplo muestra cómo crear un BroadcastReceiver que puede recibir eventos
BOOT_COMPLETED. De esta manera, puede iniciar un Servicio o iniciar una Actividad tan
pronto como se encienda el dispositivo.
• Además, puede usar los eventos BOOT_COMPLETED para restaurar sus alarmas, ya que se
destruyen cuando el dispositivo se apaga.
• NOTA: El usuario debe haber iniciado la aplicación al menos una vez antes de que pueda
recibir la acción BOOT_COMPLETED.

También podría gustarte