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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

android:icon
Значок, обозначающий приемник вещания. Этот атрибут устанавливается как ссылка на ресурс, который можно рисовать, содержащий определение изображения. Если он не установлен, вместо него используется значок, указанный для приложения в целом. См. атрибут 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