- sintassi:
<receiver android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:intentMatchingFlags=["none" | "enforceIntentFilter" | "allowNullAction"] android:label="string resource" android:name="string" android:permission="string" android:process="string" > ... </receiver>
- contenuto in:
<application>- possono contenere:
<intent-filter><meta-data><property>- description:
- Dichiara un broadcast receiver, una sottoclasse di
BroadcastReceiver, come uno dei componenti dell'applicazione. I ricevitori di trasmissione consentono alle applicazioni di ricevere intent trasmessi dal sistema o da altre applicazioni, anche quando altri componenti dell'applicazione non sono in esecuzione.Esistono due modi per far conoscere un broadcast receiver al sistema. Uno è dichiararlo nel file manifest con questo elemento. L'altro è creare il ricevitore in modo dinamico nel codice e registrarlo con il metodo
Context.registerReceiver()o una delle sue versioni sovraccariche.Per saperne di più su come creare dinamicamente i ricevitori, consulta la descrizione della classe
BroadcastReceiver.Se questo ricevitore gestisce trasmissioni non di sistema, specifica un valore per
android:exported. Imposta questo valore su"true"se vuoi che il ricevitore possa ricevere trasmissioni da altre applicazioni o su"false"se vuoi che il ricevitore possa ricevere trasmissioni solo dalla tua app.Non devi rimuovere l'attributo
android:permissionse l'hai già dichiarato.Avviso:limita il numero di ricevitori di trasmissioni che imposti nella tua app. Un numero eccessivo di ricevitori di trasmissioni può influire sulle prestazioni dell'app e sulla durata della batteria dei dispositivi degli utenti. Per ulteriori informazioni sulle API che puoi utilizzare al posto della classe
BroadcastReceiverper pianificare il lavoro in background, consulta Ottimizzazione in background. - attributi:
android:directBootAwareIndica se il ricevitore di trasmissione è compatibile con l'avvio diretto, ovvero se può essere eseguito prima che l'utente sblocchi il dispositivo.
Nota: durante l'avvio diretto, un ricevitore di trasmissione nella tua applicazione può accedere solo ai dati archiviati nello spazio di archiviazione protetto dal dispositivo.
Il valore predefinito è
"false".android:enabled- Indica se il broadcast receiver può essere istanziato dal sistema. È
"true"se può esserlo e"false"in caso contrario. Il valore predefinito è"true".L'elemento
<application>ha un proprio attributoenabledche si applica a tutti i componenti dell'applicazione, inclusi i ricevitori di trasmissione. Gli attributi<application>e<receiver>devono essere entrambi"true"affinché il broadcast receiver sia abilitato. Se uno dei due è"false", è disattivato e non può essere istanziato. android:exported- Indica se il broadcast receiver può ricevere messaggi da origini non di sistema
al di fuori della sua applicazione.
"true"se può,"false"se non può. Se"false", gli unici messaggi ricevuti dal broadcast receiver sono quelli inviati dal sistema, dai componenti della stessa applicazione o dalle applicazioni con lo stesso ID utente.Se non specificato, il valore predefinito dipende dal fatto che il broadcast receiver contenga filtri di intent. Se il ricevitore contiene almeno un filtro per intent, il valore predefinito è
"true". In caso contrario, il valore predefinito è"false".Questo attributo non è l'unico modo per limitare l'esposizione esterna di un broadcast receiver. Puoi anche utilizzare un'autorizzazione per limitare le entità esterne che possono inviare messaggi. Vedi l'attributo
permission. android:icon- Un'icona che rappresenta il broadcast receiver. Questo attributo è impostato
come riferimento a una risorsa disegnabile contenente la definizione dell'immagine.
Se non è impostata, viene utilizzata l'icona specificata per l'applicazione nel suo complesso. Vedi l'attributo
icondell'elemento<application>.L'icona del ricevitore di trasmissione, impostata qui o dall'elemento
<application>, è anche l'icona predefinita per tutti i filtri per intent del ricevitore. Vedi l'attributoicondell'elemento<intent-filter>. android:intentMatchingFlags-
Utilizza questo attributo per perfezionare il modo in cui il sistema associa gli intent in entrata ai componenti dell'app. Per impostazione predefinita, non vengono applicate regole di corrispondenza speciali.
Il valore impostato su un tag
<receiver>sostituisce il valore impostato sul tag<application>.Il valore deve essere uno o più dei seguenti flag, separati da "
|":Flag Descrizione noneDisattiva tutte le regole di corrispondenza speciali per gli intent in entrata. Quando specifichi più flag, i valori in conflitto vengono risolti dando la precedenza al flag none.enforceIntentFilterApplica una corrispondenza più rigorosa per gli intent in entrata:
- Gli intent espliciti devono corrispondere al filtro per intent del componente di destinazione.
- Gli intent senza un'azione non corrispondono ad alcun filtro per intent.
allowNullActionRilassa le regole di corrispondenza per consentire la corrispondenza degli intent senza un'azione. Questo flag viene utilizzato insieme a
enforceIntentFilterper ottenere il seguente comportamento:- Gli intent espliciti devono corrispondere al filtro per intent del componente di destinazione.
- Gli intent senza un'azione possono corrispondere a qualsiasi filtro per intent.
Per ulteriori informazioni, consulta la sezione Intent più sicuri nelle modifiche al comportamento di Android 16 (livello API 36).
android:label- Un'etichetta leggibile dall'utente per il broadcast receiver. Se questo attributo non è
impostato, viene utilizzata l'etichetta impostata per l'applicazione nel suo complesso. Vedi l'attributo
labeldell'elemento<application>.L'etichetta del ricevitore di trasmissione, impostata qui o dall'elemento
<application>, è anche l'etichetta predefinita per tutti i filtri per intent del ricevitore. Vedi l'attributolabeldell'elemento<intent-filter>.L'etichetta è impostata come riferimento a una risorsa stringa, in modo che possa essere localizzata come le altre stringhe nell'interfaccia utente. Tuttavia, per comodità durante lo sviluppo dell'applicazione, può essere impostato anche come stringa non elaborata.
android:name- Il nome della classe che implementa il broadcast receiver, una sottoclasse di
BroadcastReceiver. Si tratta di un nome di classe completo, ad esempio"com.example.project.ReportReceiver". Tuttavia, come abbreviazione, se il primo carattere del nome è un punto, ad esempio".ReportReceiver", viene aggiunto al nome del pacchetto specificato nell'elemento<manifest>.Una volta pubblicata l'applicazione, non modificare questo nome, a meno che tu non imposti
android:exported="false".Non esiste un valore predefinito. È necessario specificare il nome.
android:permission- Il nome di un'autorizzazione necessaria alle emittenti per inviare un
messaggio al broadcast receiver.
Se questo attributo non è impostato, l'insieme di autorizzazioni impostato dall'attributo
permissiondell'elemento<application>si applica al broadcast receiver. Se non è impostato alcun attributo, il destinatario non è protetto da un'autorizzazione.Per ulteriori informazioni sulle autorizzazioni, consulta la sezione Autorizzazioni nella panoramica del manifest dell'app e i Suggerimenti per la sicurezza.
android:processIl nome del processo in cui viene eseguito il ricevitore di trasmissione. Normalmente, tutti i componenti di un'applicazione vengono eseguiti nel processo predefinito creato per l'applicazione. Ha lo stesso nome del pacchetto dell'applicazione.
L'attributo
processdell'elemento<application>può impostare un valore predefinito diverso per tutti i componenti. Tuttavia, ogni componente può sostituire il valore predefinito con il proprio attributoprocess, consentendoti di distribuire l'applicazione su più processi.Se il nome assegnato a questo attributo inizia con i due punti (
:), viene creato un nuovo processo privato per l'applicazione quando è necessario e il broadcast receiver viene eseguito in questo processo.Se il nome del processo inizia con un carattere minuscolo, il ricevitore viene eseguito in un processo globale con quel nome, a condizione che abbia l'autorizzazione per farlo. Ciò consente ai componenti di applicazioni diverse di condividere un processo, riducendo l'utilizzo delle risorse.
- introdotta in:
- Livello API 1
<ricevitore>
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2026-07-03 UTC.
[null,null,["Ultimo aggiornamento 2026-07-03 UTC."],[],[]]