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

Image non trouvée !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).

Image non trouvée !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.

Image non trouvée !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.

Image non trouvée !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