Aller au contenu

Lancer une application pour "visualiser" un fichier


Galize

Recommended Posts

Je cherche à lancer l'activité adéquate pour afficher n'importe quel fichier, si une telle activité existe.

Intent myIntent = new Intent(Intent.ACTION_VIEW,
  Uri.parse("file://" + aFile.getAbsolutePath()));
try {
  startActivity(myIntent);
} catch (Exception e) {
  e.printStackTrace();
} 

et j'ai l'impression de ne pas réussir....

11-25 17:33:51.649: INFO/ActivityManager(582): Starting activity: Intent { action=android.intent.action.VIEW data=file:///sdcard/fruits-128x128.png }
11-25 17:33:51.659: WARN/System.err(1210): android.content.ActivityNotFoundException: No Activity found to handle Intent { action=android.intent.action.VIEW data=file:///sdcard/fruits.png }
11-25 17:33:51.667: WARN/System.err(1210):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1484)
11-25 17:33:51.678: WARN/System.err(1210):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1454)
11-25 17:33:51.678: WARN/System.err(1210):     at android.app.Activity.startActivityForResult(Activity.java:2656)
11-25 17:33:51.688: WARN/System.err(1210):     at android.app.Activity.startActivity(Activity.java:2700)

Je pense donc que mon intent n'est pas le bon ou ma façon de lui passer le paramètre. (car fruit.png, c'est une image et on peut voir les images sur G1 )

[edit]

J'ai traçé l'application Gallery et elle fait :

11-25 17:45:04.308: INFO/ActivityManager(582): Starting activity: Intent { action=android.intent.action.VIEW data=content://media/external/images/media/1317 comp={com.android.camera/com.android.camera.ViewImage} }

J'ai l'impression que cela ne m'arrange pas...

Modifié par Galize
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je n'ai pas vraiment de réponse a ta question mais nous somme dans le même pétrin toi et moi.

Pour le moment ce que j'ai compris c'est qu'il faut faire comme ci-dessous :

Intent myIntent =new Intent(android.content.Intent.ACTION_VIEW);
           myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           myIntent.setDataAndType(Uri.parse("file://"+ this.file.getAbsolutePath()), this.mimeTypes.getMimeType(file) );

La fonction getMimeType donne le type de fichier

Pour cela j'ai fait une liste de mimes connus que j'ai trouvé sur le net et la fonction etourne des string du genrs

image/jpeg pour les fichiers jpeg jpg jpe

Apres ca ne résoud pas mes problèmes car ce qui m'interesse c'est d'ouvrir des fichier dont j'ignore le type. Pour le moment donc je n'ai pas de solution en dehors de trouver une base de donnée de tous le smimes types du monde.

Si bien evidament tu trouve une solution ca sera génial.

Des question ?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je n'ai pas vraiment de réponse a ta question mais nous somme dans le même pétrin toi et moi.

Pour le moment ce que j'ai compris c'est qu'il faut faire comme ci-dessous :

Intent myIntent =new Intent(android.content.Intent.ACTION_VIEW);
           myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           myIntent.setDataAndType(Uri.parse("file://"+ this.file.getAbsolutePath()), this.mimeTypes.getMimeType(file) );

La fonction getMimeType donne le type de fichier

Pour cela j'ai fait une liste de mimes connus que j'ai trouvé sur le net et la fonction etourne des string du genrs

image/jpeg pour les fichiers jpeg jpg jpe

Apres ca ne résoud pas mes problèmes car ce qui m'interesse c'est d'ouvrir des fichier dont j'ignore le type. Pour le moment donc je n'ai pas de solution en dehors de trouver une base de donnée de tous le smimes types du monde.

Si bien evidament tu trouve une solution ca sera génial.

Des question ?

EDIT :

Exemple de mime typees reconnus

pour un fichier audio essaye "audio/*" ouvrira le lecteur audio ou proposera la liste des lecteurs à l'utilisateur

"video/*" pour toutes les video

"text/txt" ou "text/*" pour tous les fichiers text

"*/*" en faisant ca ca te donne une fenetre de choix ou figure toutes les applications installées et capable d'ouvrire un fichier !

Lien vers le commentaire
Partager sur d’autres sites

et avec un createchooser ?

dans cet exemple i est une intent (celle que tu crée qui doit à priori fonctionner...

               i.setType( "text/plain" ); (ou autre chose.... image etc ..)
               startActivity( Intent.createChooser( i,"test") );

Mais je ne sais pas ce qu'il se passe si aucune activity ne gere le type...

Lien vers le commentaire
Partager sur d’autres sites

et avec un createchooser ?

dans cet exemple i est une intent (celle que tu crée qui doit à priori fonctionner...

               i.setType( "text/plain" ); (ou autre chose.... image etc ..)
               startActivity( Intent.createChooser( i,"test") );

Mais je ne sais pas ce qu'il se passe si aucune activity ne gere le type...

Ca souleve une exception si aucune activité convenable n'a été trouvé d'ou l'interet de gérer l'exception suivante :

} catch( ActivityNotFoundException e){
           this.showAlertMessage(this.getContext().getResources().getString(R.string.OPEN_FILE_CANNOT_OPEN));
           System.err.println("OpenFileDialog::onClick ActivityNotFoundException ");
           e.printStackTrace();
           return false;
       }

Lien vers le commentaire
Partager sur d’autres sites

Je vais essayer tout ça. J'ai trouvé une liste d'association MIME/Type extension

application/SLA stl

application/STEP step

application/STEP stp

application/acad dwg

application/andrew-inset ez

application/clariscad ccad

application/drafting drw

application/dsptype tsp

application/dxf dxf

application/excel xls

application/i-deas unv

application/java-archive jar

application/mac-binhex40 hqx

application/mac-compactpro cpt

application/vnd.ms-powerpoint pot

application/vnd.ms-powerpoint pps

application/vnd.ms-powerpoint ppt

application/vnd.ms-powerpoint ppz

application/msword doc

application/octet-stream bin

application/octet-stream class

application/octet-stream dms

application/octet-stream exe

application/octet-stream lha

application/octet-stream lzh

application/oda oda

application/ogg ogg

application/ogg ogm

application/pdf pdf

application/pgp pgp

application/postscript ai

application/postscript eps

application/postscript ps

application/pro_eng prt

application/rtf rtf

application/set set

application/smil smi

application/smil smil

application/solids sol

application/vda vda

application/vnd.mif mif

application/vnd.ms-excel xlc

application/vnd.ms-excel xll

application/vnd.ms-excel xlm

application/vnd.ms-excel xls

application/vnd.ms-excel xlw

application/vnd.rim.cod cod

application/x-arj-compressed arj

application/x-bcpio bcpio

application/x-cdlink vcd

application/x-chess-pgn pgn

application/x-cpio cpio

application/x-csh csh

application/x-debian-package deb

application/x-director dcr

application/x-director dir

application/x-director dxr

application/x-dvi dvi

application/x-freelance pre

application/x-futuresplash spl

application/x-gtar gtar

application/x-gunzip gz

application/x-gzip gz

application/x-hdf hdf

application/x-ipix ipx

application/x-ipscript ips

application/x-javascript js

application/x-koan skd

application/x-koan skm

application/x-koan skp

application/x-koan skt

application/x-latex latex

application/x-lisp lsp

application/x-lotusscreencam scm

application/x-mif mif

application/x-msdos-program bat

application/x-msdos-program com

application/x-msdos-program exe

application/x-netcdf cdf

application/x-netcdf nc

application/x-perl pl

application/x-perl pm

application/x-rar-compressed rar

application/x-sh sh

application/x-shar shar

application/x-shockwave-flash swf

application/x-stuffit sit

application/x-sv4cpio sv4cpio

application/x-sv4crc sv4crc

application/x-tar-gz tar.gz

application/x-tar-gz tgz

application/x-tar tar

application/x-tcl tcl

application/x-tex tex

application/x-texinfo texi

application/x-texinfo texinfo

application/x-troff-man man

application/x-troff-me me

application/x-troff-ms ms

application/x-troff roff

application/x-troff t

application/x-troff tr

application/x-ustar ustar

application/x-wais-source src

application/x-zip-compressed zip

application/zip zip

audio/TSP-audio tsi

audio/basic au

audio/basic snd

audio/midi kar

audio/midi mid

audio/midi midi

audio/mpeg mp2

audio/mpeg mp3

audio/mpeg mpga

audio/ulaw au

audio/x-aiff aif

audio/x-aiff aifc

audio/x-aiff aiff

audio/x-mpegurl m3u

audio/x-ms-wax wax

audio/x-ms-wma wma

audio/x-pn-realaudio-plugin rpm

audio/x-pn-realaudio ram

audio/x-pn-realaudio rm

audio/x-realaudio ra

audio/x-wav wav

chemical/x-pdb pdb

chemical/x-pdb xyz

image/cmu-raster ras

image/gif gif

image/ief ief

image/jpeg jpe

image/jpeg jpeg

image/jpeg jpg

image/png png

image/tiff tif tiff

image/tiff tif

image/tiff tiff

image/x-cmu-raster ras

image/x-portable-anymap pnm

image/x-portable-bitmap pbm

image/x-portable-graymap pgm

image/x-portable-pixmap ppm

image/x-rgb rgb

image/x-xbitmap xbm

image/x-xpixmap xpm

image/x-xwindowdump xwd

model/iges iges

model/iges igs

model/mesh mesh

model/mesh msh

model/mesh silo

model/vrml vrml

model/vrml wrl

text/css css

text/html htm

text/html html htm

text/html html

text/plain asc txt

text/plain asc

text/plain c

text/plain cc

text/plain f90

text/plain f

text/plain h

text/plain hh

text/plain m

text/plain txt

text/richtext rtx

text/rtf rtf

text/sgml sgm

text/sgml sgml

text/tab-separated-values tsv

text/vnd.sun.j2me.app-descriptor jad

text/x-setext etx

text/xml xml

video/dl dl

video/fli fli

video/flv flv

video/gl gl

video/mpeg mp2

video/mp4 mp4

video/mpeg mpe

video/mpeg mpeg

video/mpeg mpg

video/quicktime mov

video/quicktime qt

video/vnd.vivo viv

video/vnd.vivo vivo

video/x-fli fli

video/x-ms-asf asf

video/x-ms-asx asx

video/x-ms-wmv wmv

video/x-ms-wmx wmx

video/x-ms-wvx wvx

video/x-msvideo avi

video/x-sgi-movie movie

www/mime mime

x-conference/x-cooltalk ice

x-world/x-vrml vrm

x-world/x-vrml vrml

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...