Non capisco se è necessario essere avvisati. Se fosse vero qualsiasi app potrebbe chiamare il mio ricevitore con quelle azioni? Quindi, se lo faccio falso, il sistema può inviare le azioni al mio ricevitore?Android: qual è il significato dell'attributo del destinatario esportato?
risposta
Non capisco se è necessario essere avvisati. Se fosse vero, qualsiasi app potrebbe chiamare il mio ricevitore con quelle azioni? Quindi se faccio il falso il sistema può inviare le azioni al mio ricevitore?
In realtà, altre app non possono "chiamare il destinatario". Altre app possono semplicemente trasmettere broadcast Intent
s. Il sistema chiamerà quindi tutti i ricevitori registrati.
In generale non dovresti preoccuparti di questo. La maggior parte di questi trasmessi Intent
s sono protetti in modo che solo le app di sistema possano trasmetterli comunque. Un tentativo da parte di un'altra app di trasmettere BOOT_COMPLETED
, ad esempio, verrebbe semplicemente ignorato. Che cosa accadrebbe se il tuo BroadcastReceiver
viene attivato da un'app canaglia perché trasmette CONNECTIVITY_CHANGE
? Probabilmente nulla, perché la tua app dovrebbe verificare lo stato reale di connettività in onReceive()
in ogni caso, e se non ci sono cambiamenti puoi semplicemente ignorarlo.
Inoltre, non è necessario specificare android:enabled="true"
perché questo è lo stato predefinito. Non è inoltre necessario specificare android:exported="true"
perché è stato aggiunto un <intent-filter>
allo <receiver>
che imposta automaticamente android:exported
in true
.
se si imposta android: exported = "false", implica che il destinatario è destinato solo per l'uso interno dell'applicazione.
Nota: questo attributo non è l'unico modo per limitare l'esposizione esterna del ricevitore di una trasmissione. È inoltre possibile utilizzare un'autorizzazione per limitare le entità esterne che possono inviarlo messaggi
Questo è sbagliato. Se imposti 'android: exported =" true "', il destinatario è pubblico, non interno all'applicazione. Poiché esiste un '
@DavidWasser scusa il mio errore, ho modificato la mia risposta, grazie per aver notato – SaravInfern
Basta leggere la [documentazione ufficiale] (https://developer.android.com/guide/topics/manifest/receiver-element.html) – dipdipdip
ad esempio: "Indipendentemente dal fatto che il destinatario della trasmissione possa ricevere messaggi da fonti esterne la sua applicazione ".... cosa significa fuori? Coinvolge anche il sistema? – user3290180