web-dev-qa-db-fra.com

Quelle est l'utilisation d'Android: exports = "true" dans BroadcastReceiver

Salut, je vois que certains récepteurs de diffusion utilisent cette balise Android:exported="true" in Android Manifest.xml pour vous inscrire.

<receiver Android:exported="true" Android:name="com.flyingsoftgames.googleplayquery.QueryReceiver">
    <intent-filter>
       <action Android:name="com.Android.vending.INSTALL_REFERRER" />
    </intent-filter>
</receiver>

À quoi sert exactement Android:exported="true" pour enregistrer le récepteur de diffusion dans Android?

Merci d'avance.

23
N Sharma

Depuis le Guide du développeur :

Android: exporté Indique si le récepteur de diffusion peut recevoir des messages de sources extérieures à son application - "vrai" s'il le peut et "faux" sinon. S'il est "faux", les seuls messages que le récepteur de diffusion peut recevoir sont ceux envoyés par des composants de la même application ou des applications avec le même ID utilisateur. La valeur par défaut dépend si le récepteur de diffusion contient des filtres d'intention. L'absence de filtres signifie qu'il ne peut être invoqué que par des objets Intent qui spécifient son nom de classe exact. Cela implique que le récepteur est destiné uniquement à un usage interne à l'application (car d'autres ne connaissent normalement pas le nom de la classe). Dans ce cas, la valeur par défaut est "false". D'un autre côté, la présence d'au moins un filtre implique que le récepteur de diffusion est destiné à recevoir des intentions diffusées par le système ou d'autres applications, de sorte que la valeur par défaut est "vraie".

Cet attribut n'est pas le seul moyen de limiter l'exposition externe d'un récepteur de diffusion. Vous pouvez également utiliser une autorisation pour limiter les entités externes qui peuvent lui envoyer des messages (voir l'attribut d'autorisation).

23
Mou

Android: exporté

true: le récepteur de diffusion peut recevoir des événements envoyés par la même application ou d'autres applications

false‍: le récepteur de diffusion peut recevoir des événements envoyés par la même application

19
Haresh Chhelana