Segundo a Google Developers (2025), "Os apps para Android podem enviar ou receber mensagens de transmissão do sistema Android e de outros apps Android". Para entender com mais facilidade os broadcasts, relembre os tratamentos de eventos presentes na linguagem Java. Evento é algo que acontece no sistema: pode ser sua reinicialização; o aparelho habilitado em modo avião; a bateria sendo carregada, a desabilitação da Wi-fi e assim por diante. Resumindo: algo acontece, uma classe transmite uma mensagem e outra ficará responsável em tratá-la.

Ainda, de acordo com a Google Developers (2025), "Os apps podem se registrar para receber transmissões específicas. Quando uma transmissão é enviada, o sistema a direciona automaticamente para apps que se inscreveram para receber esse tipo específico de transmissão."

Para ocorrer a transmissão da mensagem, é necessário vinculá-la ao um objeto Intent. Através do método setAction é definido o evento que aconteceu. Por meio do método putExtra é possível passar mais dados na transmissão da mensagem.

Broadcast Receiver

0

Existem duas maneiras de definir um BroadcastReceiver:

Para saber mais sobre as ações de transmissões existentes no Android, acesse na sua máquina a pasta do SDK. Por exemplo, na minha máquina o acesso ao arquivo foi: Sdk/platforms/android-31/data/broadcast_actions.txt.

Houve muitas mudanças na API 33 em relação aos broadcast. Por exemplo, nas mensagens emitidas pelo sistema operacional como: Airplane Mode, CONNECTIVITY_CHANGE, HEADSET_PLUG entre outras devem ser declaradas programaticamente (via registerReceiver()); ao usar um PendingIntent deve ser definido a mutabilidade, através de FLAG_IMMUTABLE ou FLAG_MUTABLE.

Exemplo 01 (App que gera e envia números aleatórios):

Exemplo 02 (App que recebe o número gerado, neste exemplo o receiver recebe o número e grava no SharedPreferences. A activity não inicia quando recebe o broadcast!!!):

Exemplo 03 (App que recebe o número gerado, neste exemplo o receiver recebe o número e inicia a MainActivity. Este exemplo é apenas para mostrar como o Receiver pode ser usado para iniciar a Activity, porém isso não é recomendado, pois pode ser considerado intrusivo pelo usuário. Se for usar, faça para gerar primeiro uma notificação e assim o usuário decide se vai abrir):

Exemplo 04 (Broadcast Modo Avião):