<ricevitore>

:
<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 attributo enabled 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'attributo icon 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'attributo label 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 attributo process, 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