- :
<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>
- contenuto in:
<application>
- può contenere:
<intent-filter>
<meta-data>
- description:
- Dichiara un ricevitore di trasmissione, una sottoclasse
BroadcastReceiver
, come uno dei componenti dell'applicazione. I ricevitori Broadcast 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 rendere noto al sistema un ricevitore di trasmissione. Una è la dichiarazione nel file manifest con questo elemento. L'altra è creare il ricevitore in modo dinamico nel codice e registrarlo con il metodo
Context.registerReceiver()
o con una delle sue versioni sovraccaricate.Per ulteriori informazioni su come creare dinamicamente i destinatari, 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 sia in grado di ricevere trasmissioni da altre applicazioni oppure su"false"
se vuoi che il ricevitore possa ricevere solo le trasmissioni dalla tua app.Non è necessario rimuovere l'attributo
android:permission
se l'hai già dichiarato.Avviso: limita il numero di ricevitori che imposti nella tua app. Un numero eccessivo di ricevitori 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
BroadcastReceiver
per pianificare il lavoro in background, consulta Ottimizzazione in background. - :
android:directBootAware
Indica se il ricevitore della trasmissione è consapevole all'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 soltanto ai dati archiviati nello spazio di archiviazione protetto dal dispositivo.
Il valore predefinito è
"false"
.android:enabled
- Indica se il sistema può creare un'istanza del ricevitore della trasmissione. È
"true"
se può esserlo e"false"
in caso contrario. Il valore predefinito è"true"
.L'elemento
<application>
ha il proprio attributoenabled
che si applica a tutti i componenti dell'applicazione, inclusi i ricevitori di trasmissione. Gli attributi<application>
e<receiver>
devono essere entrambi"true"
affinché il ricevitore della trasmissione venga abilitato. Se uno dei due è"false"
, è disabilitato e non può essere creato un'istanza. android:exported
- Indica se il destinatario della trasmissione può ricevere messaggi da origini non di sistema
al di fuori della sua applicazione. È
"true"
se può e"false"
in caso contrario. Se"false"
, gli unici messaggi che il ricevitore della trasmissione riceve 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 dalla presenza o meno di filtri di intent nel ricevitore della trasmissione. Se il destinatario 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 ricevitore di trasmissione. Puoi utilizzare un'autorizzazione anche per limitare le entità esterne che possono inviargli messaggi. Vedi l'attributo
permission
. android:icon
- Un'icona che rappresenta il ricevitore della trasmissione. 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 insieme. Vedi l'attributo
icon
dell'elemento<application>
.L'icona del ricevitore della trasmissione, impostata qui o dall'elemento
<application>
, è anche l'icona predefinita per tutti i filtri per intent del destinatario. Controlla l'attributoicon
dell'elemento<intent-filter>
. android:label
- Un'etichetta leggibile dall'utente per il ricevitore della trasmissione. Se questo attributo non è impostato, viene utilizzata l'etichetta impostata per l'applicazione nel suo insieme. Vedi l'attributo
label
dell'elemento<application>
.L'etichetta del ricevitore della trasmissione, che sia impostata qui o dall'elemento
<application>
, è anche l'etichetta predefinita per tutti i filtri per intent del destinatario. Controlla l'attributolabel
dell'elemento<intent-filter>
.L'etichetta è impostata come riferimento a una risorsa stringa, in modo che possa essere localizzata come altre stringhe nell'interfaccia utente. Tuttavia, per praticità, durante lo sviluppo dell'applicazione, puoi anche impostare una stringa non elaborata.
android:name
- Il nome della classe che implementa il ricevitore di trasmissione, una sottoclasse di
BroadcastReceiver
. Si tratta di un nome completo della classe, come"com.example.project.ReportReceiver"
. Tuttavia, 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 non imposti
android:exported="false"
.Non esiste un'impostazione predefinita. È necessario specificare il nome.
android:permission
- Il nome di un'autorizzazione necessaria alle emittenti per inviare un
messaggio al ricevitore.
Se questo attributo non è impostato, l'autorizzazione impostata dall'attributo
permission
dell'elemento<application>
viene applicata al ricevitore della trasmissione. Se nessuno dei due attributi è impostato, il destinatario non è protetto da un'autorizzazione.Per ulteriori informazioni sulle autorizzazioni, consulta la sezione Autorizzazioni nella panoramica del file manifest dell'app e i suggerimenti per la sicurezza.
android:process
- Il nome del processo di esecuzione del ricevitore della 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
process
dell'elemento<application>
può impostare un valore predefinito diverso per tutti i componenti. Tuttavia, ogni componente può eseguire l'override del valore predefinito con il proprio attributoprocess
, in modo da distribuire l'applicazione in più processi.Se il nome assegnato a questo attributo inizia con i due punti (
:
), quando è necessario viene creato un nuovo processo, privato per l'applicazione, e il ricevitore della trasmissione viene eseguito in questo processo.Se il nome del processo inizia con un carattere minuscolo, il destinatario viene eseguito in un processo globale con quel nome, a condizione che abbia l'autorizzazione per farlo. Ciò consente ai componenti di diverse applicazioni di condividere un processo, riducendo l'utilizzo delle risorse.
- introdotto in:
- Livello API 1
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 2023-10-18 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Mancano le informazioni di cui ho bisogno"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Troppo complicato/troppi passaggi"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Obsoleti"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problema di traduzione"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problema relativo a esempi/codice"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Altra"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Facile da capire"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Il problema è stato risolto"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Altra"
}]