<получатель>

синтаксис:
<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>
содержится в:
<application>
может содержать:
<intent-filter>
<meta-data>
<property>
описание:
Объявляет широковещательный приемник, подкласс BroadcastReceiver , в качестве одного из компонентов приложения. Широковещательные приемники позволяют приложениям получать интенты, передаваемые системой или другими приложениями, даже когда другие компоненты приложения не запущены.

Существует два способа сообщить системе о широковещательном приемнике. Первый — объявить его в файле манифеста с помощью этого элемента. Второй — создать приемник динамически в коде и зарегистрировать его с помощью метода Context.registerReceiver() или одной из его перегруженных версий.

Для получения дополнительной информации о том, как динамически создавать приемники, см. описание класса BroadcastReceiver .

Если этот приемник обрабатывает широковещательные сообщения, не относящиеся к системным, укажите значение для android:exported . Установите это значение на "true" если вы хотите, чтобы ваш приемник мог принимать широковещательные сообщения от других приложений, или на "false" если вы хотите, чтобы ваш приемник мог принимать широковещательные сообщения только от вашего собственного приложения.

Удалять атрибут android:permission не нужно, если вы его уже объявили.

Внимание: ограничьте количество широковещательных приемников, которые вы устанавливаете в своем приложении. Слишком большое количество широковещательных приемников может повлиять на производительность вашего приложения и время автономной работы устройств пользователей. Для получения дополнительной информации об API, которые можно использовать вместо класса BroadcastReceiver для планирования фоновой работы, см. раздел «Оптимизация фоновых процессов» .

атрибуты:
android:directBootAware

Проверяет ли приемник вещания наличие функции Direct-Boot , то есть может ли он работать до разблокировки устройства пользователем.

Примечание: Во время прямой загрузки широковещательный приемник в вашем приложении может получить доступ только к данным, хранящимся в защищенном хранилище устройства .

Значение по умолчанию — "false" .

android:enabled
Указывает, может ли система создать экземпляр широковещательного приемника. Если может, то значение "false" "true" , если нет. Значение по умолчанию - "true" .

Элемент <application> имеет собственный атрибут enabled , который применяется ко всем компонентам приложения, включая широковещательные приемники. Для включения широковещательного приемника оба атрибута <application> и <receiver> должны быть равны "true" . Если хотя бы один из них равен "false" , приемник отключен и не может быть создан.

android:exported
Указывает, может ли широковещательный приемник получать сообщения из источников, не входящих в систему, за пределами его приложения. Если может, то значение "true" , если нет "false" . Если "false" , широковещательный приемник получает только сообщения, отправленные системой, компонентами того же приложения или приложениями с тем же идентификатором пользователя.

Если значение не указано, оно зависит от того, содержит ли приемник широковещательных сообщений фильтры намерений. Если приемник содержит хотя бы один фильтр намерений, то значение по умолчанию — "true" . В противном случае значение по умолчанию — "false" .

Этот атрибут — не единственный способ ограничить внешний доступ широковещательного приемника. Вы также можете использовать разрешение для ограничения внешних объектов, которые могут отправлять ему сообщения. См. атрибут permission .

android:icon
Значок, представляющий широковещательный приемник. Этот атрибут устанавливается как ссылка на ресурс drawable, содержащий определение изображения. Если он не установлен, вместо него используется значок, указанный для всего приложения. См. атрибут icon элемента <application> .

Значок приемника широковещательной рассылки, заданный здесь или элементом <application> , также является значком по умолчанию для всех фильтров намерений приемника. См. атрибут icon элемента <intent-filter> .

android:label
Удобочитаемая пользователем метка для широковещательного приемника. Если этот атрибут не задан, используется метка, заданная для всего приложения. См. атрибут label элемента <application> .

Метка широковещательного приемника, заданная здесь или элементом <application> , также является меткой по умолчанию для всех фильтров намерений приемника. См. атрибут label элемента <intent-filter> .

Метка задается как ссылка на строковый ресурс, чтобы ее можно было локализовать так же, как и другие строки в пользовательском интерфейсе. Однако, для удобства при разработке приложения, ее также можно задать как обычную строку.

android:name
Имя класса, реализующего интерфейс широковещательного приемника, являющегося подклассом класса BroadcastReceiver . Это полное имя класса, например, "com.example.project.ReportReceiver" . Однако, в качестве сокращения, если первый символ имени — точка, например, ".ReportReceiver" , он добавляется к имени пакета, указанному в элементе <manifest> .

После публикации приложения не меняйте это имя , если только вы не установите android:exported ="false" .

Значений по умолчанию нет. Необходимо указать имя.

android:permission
Название разрешения, необходимого вещателям для отправки сообщения приемнику вещания. Если этот атрибут не задан, к приемнику вещания применяется разрешение, заданное атрибутом permission элемента <application> . Если ни один из атрибутов не задан, приемник не защищен разрешением.

Для получения дополнительной информации о разрешениях см. раздел «Разрешения» в обзоре манифеста приложения и советы по безопасности .

android:process
Имя процесса, в котором работает широковещательный приемник. Обычно все компоненты приложения работают в процессе по умолчанию, созданном для этого приложения. Он имеет то же имя, что и пакет приложения.

Атрибут process элемента <application> может устанавливать разные значения по умолчанию для всех компонентов. Однако каждый компонент может переопределить значение по умолчанию с помощью своего собственного атрибута process , что позволяет распределить приложение по нескольким процессам.

Если имя, присвоенное этому атрибуту, начинается с двоеточия ( : ), то при необходимости создается новый процесс, являющийся частным для приложения, и в этом процессе запускается широковещательный приемник.

Если имя процесса начинается с маленькой буквы, получатель запускается в глобальном процессе с этим именем, при условии, что у него есть на это разрешение. Это позволяет компонентам в разных приложениях совместно использовать один процесс, снижая потребление ресурсов.

введено в:
Уровень API 1