<receptor>

Sintaxe:
<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>
contido em:
<application>
pode conter:
<intent-filter>
<meta-data>
descrição:
Declara um broadcast receiver, uma subclasse de BroadcastReceiver, como um dos componentes do aplicativo. Os broadcast receivers permitem que os aplicativos recebam intents transmitidas pelo sistema ou por outros aplicativos, mesmo quando outros componentes do aplicativo não estão em execução.

Há duas maneiras de tornar um broadcast receiver conhecido pelo sistema. Uma delas é declará-lo no arquivo de manifesto com esse elemento. A outra é criar o receiver de modo dinâmico no código e registrá-lo com o método Context.registerReceiver() ou uma das versões sobrecarregadas dele.

Para mais informações sobre como criar broadcast receivers dinamicamente, consulte a descrição da classe BroadcastReceiver.

Se o broadcast receiver processa transmissões que não são do sistema, especifique um valor para android:exported. Defina esse valor como "true", se quiser que o receiver possa receber transmissões de outros aplicativos, ou "false", se quiser que ele só receba transmissões do seu próprio app.

Não é necessário remover o atributo android:permission se ele já foi declarado.

Aviso: limite o número de broadcast receivers que você vai definir no app. Ter muitos broadcast receivers pode afetar o desempenho do app e a duração da bateria dos dispositivos dos usuários. Para saber mais sobre APIs que você pode usar no lugar da classe BroadcastReceiver para agendar trabalhos em segundo plano, consulte Otimizações em segundo plano.

Atributos:
android:directBootAware

Define se o broadcast receiver tem reconhecimento de inicialização direta, ou seja, se ele pode ser executado antes do usuário desbloquear o dispositivo.

Observação: durante a inicialização direta, um broadcast receiver no app só pode acessar os dados que estejam em armazenamento protegido do dispositivo.

O valor padrão é "false".

android:enabled
Define se o broadcast receiver pode ou não ser instanciado pelo sistema. Será "true", se isso for possível, e "false", se não for. O valor padrão é "true".

O elemento <application> tem o próprio atributo enabled, que é usado em todos os componentes do app, incluindo os broadcast receivers. Os atributos <application> e <receiver> precisam ser "true" para que o broadcast receiver seja ativado. Se um deles for "false", o receiver será desativado e não vai poder ser instanciado.

android:exported
Define se o broadcast receiver pode receber mensagens de origens que não são do sistema fora do aplicativo. Será "true", se isso for possível, e "false", se não for. Se for "false", as únicas mensagens recebidas pelo broadcast receiver serão aquelas enviadas pelo sistema, por componentes do mesmo aplicativo ou por aplicativos com o mesmo ID de usuário.

Se não for especificado, o valor padrão vai depender da presença de filtros de intent no broadcast receiver. Se o receptor tiver pelo menos um filtro de intent, o valor padrão será "true". Caso contrário, o valor padrão será "false".

Esse atributo não é a única maneira de limitar a exposição externa de um broadcast receiver. Também é possível usar uma permissão para limitar as entidades externas que podem enviar mensagens a ele. Consulte o atributo permission.

android:icon
Um ícone que representa o broadcast receiver. Esse atributo é definido como uma referência a um recurso drawable que contém a definição da imagem. Se ele não for definido, será usado o ícone especificado para o aplicativo como um todo. Consulte o atributo icon do elemento <application>.

O ícone do broadcast receiver, definido aqui ou pelo elemento <application>, também é o ícone padrão de todos os filtros de intent do receiver. Consulte o atributo icon do elemento <intent-filter>.

android:label
Um rótulo legível pelo usuário para o broadcast receiver. Se esse atributo não for definido, será usado o rótulo definido para o aplicativo como um todo. Consulte o atributo label do elemento <application>.

O rótulo do broadcast receiver, definido aqui ou pelo elemento <application>, também é o rótulo padrão para todos os filtros de intent do receiver. Consulte o atributo label do elemento <intent-filter>.

O rótulo é definido como uma referência a um recurso de string para que ele possa ser localizado como outras strings da interface do usuário. No entanto, para facilitar o desenvolvimento do aplicativo, ele também pode ser definido como uma string bruta.

android:name
O nome da classe que implementa o broadcast receiver, uma subclasse de BroadcastReceiver. Esse é um nome de classe totalmente qualificado, como "com.example.project.ReportReceiver". No entanto, como abreviação, se o primeiro caractere do nome for um ponto (por exemplo, ".ReportReceiver"), ele será anexado ao nome do pacote especificado no elemento <manifest>.

Depois de publicar o aplicativo, não mude esse nome (link em inglês), a menos que você defina android:exported="false".

Não há padrão. O nome precisa ser especificado.

android:permission
O nome de uma permissão de que os transmissores precisam para enviar uma mensagem ao broadcast receiver. Se o atributo não for definido, a permissão definida pelo atributo permission do elemento <application> será ativada no broadcast receiver. Se nenhum atributo for definido, nenhuma permissão vai proteger o receiver.

Para saber mais sobre permissões, consulte a seção Permissões na visão geral do manifesto do app e as Dicas de segurança.

android:process
O nome do processo em que o broadcast receiver é executado. Normalmente, todos os componentes de um aplicativo são executados no processo padrão criado para ele. Ele tem o mesmo nome do pacote do aplicativo.

O atributo process do elemento <application> pode definir um padrão diferente para todos os componentes. No entanto, cada componente pode substituir o padrão com o próprio atributo process, permitindo distribuir seu aplicativo em vários processos.

Se o nome atribuído a esse atributo começar com dois-pontos (:), um novo processo, particular ao aplicativo, será criado quando necessário, e o broadcast receiver será executado nesse processo.

Se o nome do processo começar com um caractere em letra minúscula, o receiver será executado em um processo global com esse nome, desde que tenha permissão. Isso permite que os componentes de diferentes aplicativos compartilhem um processo, reduzindo o uso de recursos.

Introduzido no:
API de nível 1