- синтаксис:
<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
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2024-08-20 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Отсутствует нужная мне информация"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Слишком сложен/слишком много шагов"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Устарел"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Проблема с переводом текста"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Проблемы образцов/кода"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Другое"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Прост для понимания"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Помог мне решить мою проблему"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Другое"
}]
{
"last_modified": "Последнее обновление: 2024-08-20 UTC.",
"state": ""
}