Définir les mimes sous Android pour nos activités
Nous avons vu que dans le cas d'intentions implicites, il était nécessaire de passer à androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...) des informations afin qu'il sâche déterminer l'activité à lancer:
- L'action
- La catégorie (category androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.intent.category.DEFAULT" ou category androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.intent.category.LAUNCHER" pour avoir l'application dans le lancer d'application).
- Le Mime (on trouvera la liste des MIMES officiels sur le site de l'IANA).
L'action étant déclarée dans le fichier AndroidManifest tout comme la catégorie et le mime pour notre activité.
Le Mime est donc déclaré dans un intent-filter via l'élément <data androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):mimeType="MIME" />
Par exemple, si nous voulons que notre application traite les fichiers .txt, il faudra définir le MIME suivant:
text/plain
Il est important
de noter qu'un MIME est composé d'un type et d'un sous type. Le type
est ici "text", le sous type est "plain". Sous AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...),
le type ou le sous-type pourra être positionné à * si vous
voulez traiter tous les MIMES de type indiqué (Exemple tous les types
text: text/*, ou */* pour tout traiter).
Toujours
indiquer un MIME en minuscule !
Filtres sur le mime
Seulement, ce MIME comprend d'autres extentions: g,h,c,cc,hh,m,f90
Si notre activité doit se limiter au .txt, il faudra positionner d'autres critères qui seront des filtres sur l'uri passé:
l'uri étant construite de la manière suivante:
scheme://host:port/path ou pathPrefix ou pathPattern
<data androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):host="string"
androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):mimeType="string"
androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):path="string"
androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):pathPattern="string"
androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):pathPrefix="string"
androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):port="string"
androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):scheme="string" />
scheme: schema
host: le serveur déclaré dans une uri par exemple supertos.free.fr ou * pour tous les serveurs.
Toujours
indiquer un host en minuscule !
port: le port du chemin uri.
path: chemin complet.
patPrefix: Debut du chemin.
pathPattern: Chemin pouvant contenir des jockers. * pour remplacer tous les caractères qui suivent le dernier caractère du path: Exemple toto*
.* pour commencer la chaîne par n'importe quoi, suivi éventuellement d'une chaîne: .*\\.txt pour traiter tous les fichiers txt quelque soit la localisation et le nom.
Nous sommes en
JAVALangage JAVA est un langage de programmation orienté objet qui s'exécute sur une JVM (Java Virtual Machine ou machine virtuelle JAVA.), certains caractères sont donc interprétés lors de
la compilation. par exemple \ signifie qu'il ne faut pas interpréter
le caractère suivant. Donc si vous voulez utiliser \ sans interprétation
de la part du compilateur, il faudra le doubler !
scheme: pour indiquer le shéma de la source uri file:, http:, ... (la nature de l'information) sauf que l'on n'indiquera pas les :
Si vous ne précisez pas le schéma, le système considèrera content: ou file:
Là aussi, il faut le saisir en minuscule !
Exemple de ManifestAndroid.xml
Voici un exemple de paramétrage du fichier ManifestAndroid.xml:
Il ne reste plus qu'à coder l'activité AffText pour permettre le chargement et l'affichage du fichier .txt