Les filtres d'intention

 

Pour qu'une activité puisse être connue et choisie par android lors d'une demande d'intention, elle doit en informer le système.

Ceci se fera via la balise intent-filter dans le fichier AndroidManifest.xml.

 

Par exemple:

  • Dans la balise "action android", nous indiquons à Android que l'activité ".MonActivite" est l'activité principale. Lorsque votre application sera lancée, c'est cette activité qui sera exécutée en premier.
  • La balise "category android" indique que cette activité aura une icone dans le menu du lanceur d'applications.

Il sera possible d'indiquer d'autres actions ou catégories pour cette activité...

 

Définir un filtre d'intention

Les paramètres à passer sont donc:

- L'action

  • VIEW pour afficher une ressource
  • EDIT pour éditer une ressource
  • PICK pour choisir un élément
  • ...

L'action pourra être une définition personnelle. Dans ce cas, afin d'éviter des conflits, précisez le nom de votre projet:

Par exemple: fr.free.supertos.monapplication.monactionperso

 

- Une catégorie

  • LAUNCHER (C'est le cas de votre activité principale, ce qui permettra d'avoir une icone dans le menu du lanceur d'applications).
  • DEFAULT ou ALTERNATIVE.
  • ...

Il sera aussi possible de préciser le type MIME des données manipulées avec l'élément <data android:mimeType="type mime" />. cf. les données des intentions implicites.

Un type mime étant défini par un type et un sous type (Par exemple text/plain avec text le type et plain le sous type). L'utilisation * comme jocker est possible. Par exemple */* prendra tous les types mimes.

 

Image non trouvée !Il sera possible de définir une priorité sur un filtre d'intention via la méthode setPriority() ou de connaître la priorité via getPriority(). Cette possibilité étant réservée au broadcaster receiver, je n'en parlerai pas plus ici.