Jump to content

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...

Edited by Galize
Link to comment
Share on other 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 ?

Link to comment
Share on other 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 !

Link to comment
Share on other 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...

Link to comment
Share on other 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;
       }

Link to comment
Share on other 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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...