sintaxis:
<receiver android:directBootAware=["true" | "false"]
              android:enabled=["true" | "false"]
              android:exported=["true" | "false"]
              android:icon="drawable resource"
              android:label="string resource"
              android:name="string"
              android:permission="string"
              android:process="string" >
        . . .
    </receiver>
se incluye en:
<application>
puede contener:
<intent-filter>
<meta-data>
descripción:
Declara un receptor de emisión (una subclase BroadcastReceiver) como uno de los componentes de la aplicación. Los receptores de emisión permiten que las aplicaciones reciban intents que transmiten el sistema y otras aplicaciones, incluso cuando otros componentes de la aplicación no se están ejecutando.

Hay dos formas de dar a conocer un receptor de emisión al sistema: una es declararlo en el archivo de manifiesto con este elemento. La otra es crear el receptor dinámicamente en el código y registrarlo con el método Context.registerReceiver(). Para obtener más información sobre cómo crear receptores dinámicamente, consulta la descripción de la clase BroadcastReceiver.

Advertencia: Limita la cantidad de receptores de emisión que configuras en tu app. Tener demasiados puede afectar su rendimiento y también la duración de batería de los dispositivos de los usuarios. Si quieres más información sobre las API que puedes usar en lugar de la clase BroadcastReceiver para programar el trabajo en segundo plano, consulta Optimizaciones en segundo plano.

atributos:
android:directBootAware

Indica si el receptor de emisión admite o no el inicio directo, es decir, si puede ejecutarse o no antes de que el usuario desbloquee el dispositivo.

Nota: Durante el modo de inicio directo, un receptor de emisión en tu aplicación solo puede acceder a los datos almacenados en el espacio de almacenamiento protegido del dispositivo.

El valor predeterminado es "false".

android:enabled
Posibilidad del sistema de crear o no el receptor de emisión: "true" si es posible y "false" si no. El valor predeterminado es "true".

El elemento <application> tiene su propio atributo enabled que se aplica a todos los componentes de la aplicación, incluidos los receptores de emisión. Los atributos <application> y <receiver> deben ser "true" para que se habilite el receptor de emisión. Si alguno es "false", está inhabilitado y no puede crearse.

android:exported
Posibilidad del receptor de emisión de recibir o no mensajes de fuentes externas a tu aplicación: "true" si puede y "false" si no. Si es "false", los únicos mensajes que puede recibir el receptor de emisión son los enviados por los componentes de la misma aplicación o por aplicaciones con el mismo ID de usuario.

El valor predeterminado depende de si el receptor de emisión contiene filtros de intents. La ausencia de filtros significa que solo puede ser invocado por Intents que especifiquen su nombre de clase exacto. Esto implica que el receptor está destinado únicamente al uso interno de la aplicación (ya que, en general, otros no conocerían el nombre de la clase). Entonces, en este caso, el valor predeterminado es "false". Por otro lado, la presencia de, por lo menos, un filtro implica que el receptor de emisión está destinado a recibir intents transmitidos por el sistema y otras aplicaciones, por lo que el valor predeterminado es "true".

Este atributo no es la única forma de limitar la exposición externa de un receptor de emisión. También puedes usar un permiso para limitar las entidades externas que pueden enviarle mensajes (consulta el atributo permission).

android:icon
Es un ícono que representa al receptor de emisión. Este atributo debe configurarse como referencia a un recurso de elemento de diseño que contiene la definición de imagen. Si no se configura, se usará el ícono especificado para la aplicación como un todo (consulta el atributo icon del elemento <application>).

El ícono del receptor de emisión, ya sea que se configure aquí o lo configure el elemento <application>, también es el predeterminado para todos los filtros de intent del receptor (consulta el atributo icon del elemento <intent-filter>).

android:label
Es una etiqueta legible por el usuario para el receptor de emisión. Si no se configura este atributo, se utiliza el conjunto de etiquetas para la aplicación en su conjunto (consulta el atributo label del elemento <application>).

La etiqueta del receptor de emisión, ya sea que se configure aquí o la configure el elemento <application>, también es la etiqueta predeterminada para todos los filtros de intent del receptor (consulta el atributo label del elemento <intent-filter>).

La etiqueta debe configurarse como referencia a un recurso de string, de modo que se pueda localizar como otras strings en la interfaz de usuario. Sin embargo, para tu conveniencia mientras desarrollas la aplicación, también puedes configurarla como una string sin procesar.

android:name
Es el nombre de la clase que implementa el receptor de emisión, una subclase de BroadcastReceiver. Debería ser un nombre de clase completo (como "com.example.project.ReportReceiver"). Sin embargo, para abreviar, si el primer carácter del nombre es un punto (por ejemplo, ". ReportReceiver"), se agrega al nombre del paquete especificado en el elemento <manifest>.

Una vez que publiques tu aplicación, no deberías cambiar este nombre (a menos que hayas configurado android:exported="false").

No hay ningún valor predeterminado. Debe especificarse el nombre.

android:permission
Es el nombre de un permiso que las emisoras deben tener para enviar un mensaje al receptor de la emisión. Si no se configura este atributo, el permiso configurado por el atributo permission del elemento <application> se aplica al receptor de la emisión. Si no se configura ninguno de los atributos, el receptor no está protegido por un permiso.

Para obtener más información sobre los permisos, consulta la sección Permisos en la introducción y también en un documento separado, Seguridad y permisos.

android:process
Es el nombre del proceso en el que se debe ejecutar el receptor de la emisión. Por lo general, todos los componentes de una aplicación se ejecutan en el proceso predeterminado creado para ella. Tiene el mismo nombre que el paquete de la aplicación. El atributo process del elemento <application> puede configurar un valor predeterminado diferente para todos los componentes. Pero cada componente puede anular el valor predeterminado con su propio atributo process, lo que te permite distribuir tu aplicación a lo largo de varios procesos.

Si el nombre asignado a este atributo comienza con dos puntos (":"), cuando es necesario, se crea un nuevo proceso, privado para la aplicación, y el receptor de emisión se ejecuta en ese proceso. Si el nombre del proceso comienza con un carácter en minúscula, el receptor se ejecutará en un proceso global con ese nombre, siempre que tenga permiso para hacerlo. Esto permite que los componentes de diferentes aplicaciones compartan un mismo proceso y reduzcan de esa forma el uso de recursos.

primera inclusión:
API nivel 1