Como abrir arquivos
Este é um post bem simples, como abrir arquivos atravez de um intent? ou somente como abrir um arquivo programaticamente?
Primeiro de tudo precisamos saber qual é a extensão de arquivo que você deseja abrir e seu MIME Type, abaixo tem uma tabela que vai esclarecer a maioria desses tipos:
Extension | MIME Type | |
Android Application | .apk | application/vnd.android.package-archive |
Text | .txt | text/plain |
.csv | text/csv | |
.xml | text/xml | |
Web related | .htm | text/html |
.html | text/html | |
.php | text/php | |
Image | .png | image/png |
.gif | image/gif | |
.jpg | image/jpg | |
.jpeg | image/jpeg | |
.bmp | image/bmp | |
Audio | .mp3 | audio/mp3 |
.wav | audio/wav | |
.ogg | audio/x-ogg | |
.mid | audio/mid | |
.midi | audio/midi | |
.amr | audio/AMR | |
Video | .mpeg | video/mpeg |
.3gp | video/3gpp | |
Package | .jar | application/java-archive |
.zip | application/zip | |
.rar | application/x-rar-compressed | |
.gz | application/gzip |
Também existe uma forma de pegar esse MIME Type automatico que pode ser feito da seguinte maneira:
private String getType(File file) { String type = null; try { URL u = file.toURL(); URLConnection uc = null; uc = u.openConnection(); type = uc.getContentType(); } catch (Exception e) { e.printStackTrace(); } return type; }
(mas lembre-se de tratar os tipos desconhecidos ex: “content/unknown”).
Agora que temos o MIME Type é so abrir o arquivo através da Intent com a ação “ACTION_VIEW”:
File file = new File("/sdcard/musica.mp3"); String type = getType(file); Intent it = new Intent(); it.setAction(android.content.Intent.ACTION_VIEW); it.setDataAndType(Uri.fromFile(file), type); try { startActivity(it); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "Aplicativo necessário não encontrado.", Toast.LENGTH_SHORT); }
Note que inseri um try catch para tratar qualquer tipo de excessao referente a MIME Type não reconhecido, ou arquivo desconhecido.
Estou tentando abrir um arquivo zip mas não consigo, será que vc pode me ajudar?
fiz exatamente isso que vc colocou
ainda coloquei o um System.out.println(type); antes do startActivity para ver se ele estava pegando o tipo certo e ele identifica como application/zip
mas não abre a aplicação nem dá erro.
No log do eclipse ele diz o seguinte:
No Activity found to handle Intent
preciso muito resolver isso
Victor o grande problema é que você não tem nenhum gerenciador de arquivos zip instalados no seu dispositivo por exemplo um ‘zipDroid’, no caso você deveria ter algum instalado pois o objetivo é enviar uma intent e ver o programa que seu dispositivo tem disponivel para abrir aquele tipo de arquivo. entendeu ? do contrario você deveria fazer na mão um gerenciador de zip!
Ola amigo estou procurando na internet mas n consegui encontrar ainda. Você sabe como eu consigo listar os arquivos de audio do dispositivo android para q eu possa estar pegando o path deles e execuntando (no caso meu projeto é de um alarme)?
os arquivos de audio do sistema fica em : “/system/media/audio/” para listar basta usar a classe File