파일탐색기의 폴더에 접근하여 그대로 호출하는 방법이 있는지 찾아 보았지만


안드로이드 파일 탐색기를 호출하기 위해선 ListView에 담아 이벤트 처리를 해주는 방법만이 있었습니다.


파일 탐색기에 주요한 파일이 많아 바로 intent처리를 하기엔 위험하여 제공하지 않는 다고 합니다.


그 외에는 Type 별로  원하는 것을 intent 호출하여 ex) 갤러리, 비디오 등 호출


모아 볼 수 있는 환경을 기본 제공합니다.


파일 탐색기 구현은 다음에 해보기로 하고 Type 별로 불러오는 것을 테스트 해보았습니다.





폴더 내용 intent 호출


모든 Type을 호출하려면 */* 사용


모든 탐색기 파일에서 application/* 형식의 Type 호출 , 갤러리는 image/* , 동영상은 video/*


 Intent i = new Intent(Intent.ACTION_GET_CONTENT);

i.setType("application/*"); //여러가지 Type은 아래 표로 정리해두었습니다.
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(i.createChooser(i,"Open"));




탐색기 파일에서 Download 폴더안의 application/* 형식의 Type 호출 


 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath()
+ "/Download/");
intent.setDataAndType(uri, "application/*");
startActivity(Intent.createChooser(intent, "Open"));




호출 시에 저 파일을 열 수 있는 앱이 나열 되어 선택해주면 됩니다.





경로에 있는 파일 열기 - mp3 확장자 파일이라면 audio/* 이용


 File filePath = new File("/mnt/sdcard/music.mp3");


Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(filePath), "audio/*");
startActivity(intent);





setType 종류


MIME-TypeDescriptionFile Extension
application/acadAutoCAD drawing filesdwg
application/clariscadClarisCAD filesccad
application/dxfDXF (AutoCAD)dxf
application/msaccessMicrosoft Access filemdb
application/mswordMicrosoft Word filedoc
application/octet-streamUninterpreted binarybin
application/pdfPDF (Adobe Acrobat)pdf
application/postscriptPostscript, encapsulated Postscript,ai, ps, eps
Adobe Illustrator
application/rtfRich Text Format filertf rtf
application/vnd.ms-excelMicrosoft Excel filexls
application/vnd.ms-powerpointMicrosoft PowerPoint fileppt
application/x-cdfChannel Definition Format filecdf
application/x-cshC-shell scriptcsh csh
application/x-dviTeXdvi dvi dvi
application/x-javascriptJavascript source filejs
application/x-latexLaTeX source filelatex
application/x-mifFrameMaker MIF formatmif
application/x-msexcelMicrosoft Excel filexls
application/x-mspowerpointMicrosoft PowerPoint fileppt
application/x-tclTCL scripttcl
application/x-texTeX source filetex
application/x-texinfoTexinfo (emacs)texinfo, texi
application/x-trofftroff filet, tr, roff t, tr, roff
application/x-troff-mantroff with MAN macrosman
application/x-troff-metroff with ME macrosme
application/x-troff-mstroff with MS macrosms
application/x-wais-sourceWAIS source filesrc
application/zipZIP archivezip
audio/basicBasic audio (usually m-law)au, snd
audio/x-aiffAIFF audioaif, aiff, aifc
audio/x-wavWindows WAVE audiowav
image/gifGIF imagegif
image/iefImage Exchange Format fileief
image/jpegJPEG imagejpeg, jpg jpe
image/tiffTIFF imagetiff, tif
image/x-cmu-rasterCMU Raster imageras
image/x-portable-anymapPBM Anymap image formatpnm
image/x-portable-bitmapPBM Bitmap image formatpbm
image/x-portable-graymapPBM Graymap image formatpgm
image/x-portable-pixmapPBM Pixmap image formatppm
image/x-rgbRGB image formatrgb
image/x-xbitmapX Bitmap imagexbm
image/x-xpixmapX Pixmap imagexpm
image/x-xwindowdumpX Windows Dump (xwd)xwd
multipart/x-gzipGNU ZIP archivegzip
multipart/x-zipPKZIP archivezip
text/cssCascading style sheetcss
text/htmlHTML filehtml, htm
text/plainPlain texttxt
text/richtextMIME Rich Textrtx
text/tab-separated- valuesText with tab-separated valuestsv
text/xmlXML documentxml
text/x-setextStruct-Enhanced textetx
text/xslXSL style sheetxsl
video/mpegMPEG videompeg, mpg, mpe
video/quicktimeQuickTime videoqt, mov
video/x-msvideoMicrosoft Windows videoavi
video/x-sgi-movieSGI movie player formatmovie


MIME 확장명

파일 확장명 

 application/x-silverlight-app .xap
 application/manifest .manifest 
 application/x-ms-application .application 
 application/x-ms-xbap .xbap
 application/octet-stream .deploy
 application/vnd.ms-xpsdocument .xps 
 application/xaml+xml .xaml
 application/vnd.ms-cab-compressed .cab
 application/vnd.openxmlformats-officedocument.wordprocessingml.document .docx
 application/vnd.openxmlformats-officedocument.wordprocessingml.document .docm
 application/vnd.openxmlformats-officedocument.presentationml.presentation .pptx
 application/vnd.openxmlformats-officedocument.presentationml.presentation .pptm
 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xlsx
 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xlsm
 application/msaccess .accdb
 application/x-mspublisher .pub
 image/svg+xml .svg
 application/xhtml+xml .xht
 application/xhtml+xml .xhtml






문제점


위 방법으로 갤러리나 비디오를 불러오기엔 충분합니다. 이유는 안드로이드 기기마다 갤러리와 카메라, 동영상은 기본적으로 제공하는 브라우저가 존재하기 때문입니다. PPT, PDF, TXT 형식 등은 안드로이드 기기에서 브라우저를 볼 수 있는 앱이 따로 설치 되어 있지 않다면 아래와 같은 현상으로 볼 수 없도록 호출이 됩니다.







저 확장자 형식을 열 수 있는 앱이 존재하지 않는 것으로 나옵니다.


문제를 해결하기 위해선 파일 브라우저를 실행할 수 있는 앱이 존재해야 해결이 됩니다.


(혹시 다른 해결방법이 있다면 댓글로 부탁드려요!)



출처: https://kylblog.tistory.com/22 [ylblog]