android调用自带文件选择器获取指定文件,编写解析Uri获取文件绝对路径
2016-08-15 23:55
1061 查看
标题有点长,不多说
其中“text/plain”是文件的后缀名所对应的MIME类型
当指定两种或两种以上指定文件类型格式是:
随手贴上常用的MIME类型
因为 managedQuery(uri, new String[]{“*”}, null, null, null);方法过时等等等原因,我决定自己解析Uri,在onActivityResult()进行解析操作
好到。到此位置获取到了文件绝对路径,接下来的对文件的操作就自行发挥了。
我的博客网站:http://huyuxin.top/欢迎大家访问!评论!
Intent intent=new Intent(Intent.ACTION_GET_CONTENT); intent.setType("text/plain"); intent.addCategory(Intent.CATEGORY_OPENABLE); startActivityForResult(intent,REC_REQUESTCODE);
其中“text/plain”是文件的后缀名所对应的MIME类型
当指定两种或两种以上指定文件类型格式是:
//intent.setType("video/*;image/*");//同时选择视频和图片
随手贴上常用的MIME类型
//{后缀名,MIME类型} {".3gp", "video/3gpp"}, {".apk", "application/vnd.android.package-archive"}, {".asf", "video/x-ms-asf"}, {".avi", "video/x-msvideo"}, {".bin", "application/octet-stream"}, {".bmp", "image/bmp"}, {".c", "text/plain"}, {".class", "application/octet-stream"}, {".conf", "text/plain"}, {".cpp", "text/plain"}, {".doc", "application/msword"}, {".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"}, {".xls", "application/vnd.ms-excel"}, {".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}, {".exe", "application/octet-stream"}, {".gif", "image/gif"}, {".gtar", "application/x-gtar"}, {".gz", "application/x-gzip"}, {".h", "text/plain"}, {".htm", "text/html"}, {".html", "text/html"}, {".jar", "application/java-archive"}, {".java", "text/plain"}, {".jpeg", "image/jpeg"}, {".jpg", "image/jpeg"}, {".js", "application/x-javascript"}, {".log", "text/plain"}, {".m3u", "audio/x-mpegurl"}, {".m4a", "audio/mp4a-latm"}, {".m4b", "audio/mp4a-latm"}, {".m4p", "audio/mp4a-latm"}, {".m4u", "video/vnd.mpegurl"}, {".m4v", "video/x-m4v"}, {".mov", "video/quicktime"}, {".mp2", "audio/x-mpeg"}, {".mp3", "audio/x-mpeg"}, {".mp4", "video/mp4"}, {".mpc", "application/vnd.mpohun.certificate"}, {".mpe", "video/mpeg"}, {".mpeg", "video/mpeg"}, {".mpg", "video/mpeg"}, {".mpg4", "video/mp4"}, {".mpga", "audio/mpeg"}, {".msg", "application/vnd.ms-outlook"}, {".ogg", "audio/ogg"}, {".pdf", "application/pdf"}, {".png", "image/png"}, {".pps", "application/vnd.ms-powerpoint"}, {".ppt", "application/vnd.ms-powerpoint"}, {".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"}, {".prop", "text/plain"}, {".rc", "text/plain"}, {".rmvb", "audio/x-pn-realaudio"}, {".rtf", "application/rtf"}, {".sh", "text/plain"}, {".tar", "application/x-tar"}, {".tgz", "application/x-compressed"}, {".txt", "text/plain"}, {".wav", "audio/x-wav"}, {".wma", "audio/x-ms-wma"}, {".wmv", "audio/x-ms-wmv"}, {".wps", "application/vnd.ms-works"}, {".xml", "text/plain"}, {".z", "application/x-compress"}, {".zip", "application/x-zip-compressed"}, {"", "*/*"} };
因为 managedQuery(uri, new String[]{“*”}, null, null, null);方法过时等等等原因,我决定自己解析Uri,在onActivityResult()进行解析操作
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode ==Activity.RESULT_OK&&requestCode==REC_REQUESTCODE){ Uri uri = data.getData();//得到uri,后面就是将uri转化成file的过程。 String string =uri.toString(); File file; String a[]=new String[2]; //判断文件是否在sd卡中 if (string.indexOf(String.valueOf(Environment.getExternalStorageDirectory()))!=-1){ //对Uri进行切割 a = string.split(String.valueOf(Environment.getExternalStorageDirectory())); //获取到file file = new File(Environment.getExternalStorageDirectory(),a[1]); }else if(string.indexOf(String.valueOf(Environment.getDataDirectory()))!=-1){ //判断文件是否在手机内存中 //对Uri进行切割 a =string.split(String.valueOf(Environment.getDataDirectory())); //获取到file file = new File(Environment.getDataDirectory(),a[1]); }else{ //出现其他没有考虑到的情况 MyToast.makeshow(this,"文件路径解析失败!",Toast.LENGTH_SHORT); return; } i(TAG, "onActivityResult" + file.getAbsolutePath()); } }
好到。到此位置获取到了文件绝对路径,接下来的对文件的操作就自行发挥了。
我的博客网站:http://huyuxin.top/欢迎大家访问!评论!
相关文章推荐
- android根据uri或文件绝对路径获取文件基本信息
- android通过系统调用图片文件的Uri转换为绝对文件路径
- android根据uri或文件绝对路径获取文件基本信息
- android 根据Uri获取文件绝对路径
- Android中调用系统摄像并且保存到指定位置的一些问题&Uri转文件路径方法
- android 获取uri的正确文件路径的办法
- android 获取uri的正确文件路径的办法
- Android根据URI获取图片绝对路径
- android获取指定路径下目录文件
- Java中获取classpath路径下的资源文件【ClassLoader.getSystemResource("")获取当前ClassPath的绝对URI路径,还可以以流的形式获取文件】
- Android将获取到文件的uri转换为字符串的路径
- android获取指定路径下目录文件
- Android通过Uri获取文件的路径的方法
- android系统通过图片绝对路径获取URI的三种方法
- Android获取URI的绝对路径的类
- 如何获取android项目下某个文件的绝对路径
- 根据Uri获取文件绝对路径
- android系统通过图片绝对路径获取URI的三种方法
- 获取指定目录下指定扩展名文件的绝对路径,存储到文本文件中
- android系统通过图片绝对路径获取URI的三种方法