/**

* 通过Uri返回File文件

* 注意:通过相机的是类似content://media/external/images/media/97596

* 通过相册选择的:file:///storage/sdcard0/DCIM/Camera/IMG_20150423_161955.jpg

* 通过查询获取实际的地址

* @param uri

* @return

*/

public File getFileByUri(Uri uri) {

String path = null;

if ("file".equals(uri.getScheme())) {

path = uri.getEncodedPath();

if (path != null) {

path = Uri.decode(path);

ContentResolver cr = activity.getContentResolver();

StringBuffer buff = new StringBuffer();

buff.append("(").append(Images.ImageColumns.DATA).append("=").append("'" + path + "'").append(")");

Cursor cur = cr.query(Images.Media.EXTERNAL_CONTENT_URI, new String[] { Images.ImageColumns._ID, Images.ImageColumns.DATA }, buff.toString(), null, null);

int index = 0;

int dataIdx = 0;

for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {

index = cur.getColumnIndex(Images.ImageColumns._ID);

index = cur.getInt(index);

dataIdx = cur.getColumnIndex(Images.ImageColumns.DATA);

path = cur.getString(dataIdx);

}

cur.close();

if (index == 0) {

} else {

Uri u = Uri.parse("content://media/external/images/media/" + index);

System.out.println("temp uri is :" + u);

}

}

if (path != null) {

return new File(path);

}

} else if ("content".equals(uri.getScheme())) {

// 4.2.2以后

String[] proj = { MediaStore.Images.Media.DATA };

Cursor cursor = activity.getContentResolver().query(uri, proj, null, null, null);

if (cursor.moveToFirst()) {

int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

path = cursor.getString(columnIndex);

}

cursor.close();

return new File(path);

} else {

Log.i(TAG, "Uri Scheme:" + uri.getScheme());

}

return null;

}

android通过uri得到文件对象,安卓[android] 通过Uri获取File文件相关推荐

  1. 【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )

    文章目录 一.创建 XmlParser 解析器 二.获取 Xml 文件中的节点 三.获取 Xml 文件中的节点属性 四.完整代码示例 一.创建 XmlParser 解析器 创建 XmlParser 解 ...

  2. iphone 传android,安卓和苹果手机怎么互传文件_安卓与苹果手机之间互传文件的方法教程_3DM手游...

    一直以来,很多的app都是分为安卓和IOS两个版本,在使用上,两个平台之间很多功能都不能跨平台使用.比如大家在玩游戏时充值的东西,在苹果充值之后,同一个账号转到安卓手机上玩,那些东西都是不能迁移进来的 ...

  3. iphone android互传文件夹,安卓和苹果手机怎么互传文件_安卓与苹果手机之间互传文件的方法教程_3DM手游...

    一直以来,很多的app都是分为安卓和IOS两个版本,在使用上,两个平台之间很多功能都不能跨平台使用.比如大家在玩游戏时充值的东西,在苹果充值之后,同一个账号转到安卓手机上玩,那些东西都是不能迁移进来的 ...

  4. android 解析midi文件,基于安卓的乐音识别及MIDI文件输出的研究和实现

    基于安卓的乐音识别及MIDI文件输出的研究和实现 语音识别技术已经取得了不少进步,比如人们可以和Siri在苹果手机上对话了.另一个技术相关领域也有进展,乐音跟踪识别,比如微信可以摇一摇搜歌,手机根据& ...

  5. Android -- 创建XML文件对象及其序列化, pull解析XML文件

    1. 创建XML文件对象及其序列化 示例代码:(模拟以xml格式备份短信到SD卡) SmsInfo.java, bean对象 /*** 短信的业务bean* @author Administrator ...

  6. android os能删掉那,安卓手机里的那些英文文件夹到底都是啥?可不可以删除?...

    原标题:安卓手机里的那些英文文件夹到底都是啥?可不可以删除? 对于使用安卓手机的强迫症患者来说,文件夹必须经常清理,尽管里面没有任何东西,也必须要彻底删除.虽然强迫症治好了,但总会不小心误删一些重要的 ...

  7. 双鱼林 android 服务器,双鱼林安卓Android代码生成器下载_双鱼林安卓Android代码生成器官方下载-太平洋下载中心...

    双鱼林安卓Android 代码生成器是一款生成安卓手机程序的代码生成器 基于分层模式设计思想,生成的代码直接导入Ecli PSe软件就可以用的!真正面向对象设计:系统的整体设计,提供通过使用面向对象的 ...

  8. android studio 课程表,基于课程表的安卓Android手机控制APP设计(AndroidStudio,SQLite)(含录像)...

    基于课程表的安卓Android手机控制APP设计(AndroidStudio,SQLite)(含录像)(毕业论文12000字,程序代码) 摘 要 随着IT技术的发展,以前老套的课程表内容查询管理方式已 ...

  9. 手机中geetest是什么文件_安卓手机里这些全英文件夹,到底是什么?删了它,手机瞬间多了5个G...

    关注"践行者鱼嫩子","置顶公众号",点击"查看历史消息 ",这样您就可以每天继续免费收到文章了.点击 ",会有更多精彩呈现.每天 ...

最新文章

  1. Cloudera Manager5安装总结遇到问题及解决办法
  2. 遇到奇怪的C#/C/C++或者Java的bug可以去问问Coverity
  3. 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题
  4. 完整mes代码(含客户端和server端_200行代码实现基于paxos的kv存储
  5. 【Java6】Date类/Calendar类,System类/Math类,包装类,集合,泛型,内部类
  6. Java Web项目,Android和微信小程序的初始页面配置
  7. matlab变量由非标量,matlab中的if语句
  8. mysql存储过程in_在MySQL存储过程中使用WHERE IN()
  9. 蓝桥杯 ALGO-29 算法训练 校门外的树(区间处理)
  10. php数组去重复数据的小例子
  11. linux常用命令之文件管理
  12. scala中的filter函数
  13. ZC_汇编指令_cmp
  14. 3. 请列举java ee的主要新特性_JavaEE考试题
  15. 初中生学计算机应用有什么好方面,计算机有哪些专业 初中毕业学习相关专业有发展吗...
  16. 全民社会保障月供制度的客观理由
  17. 企业微信爆粉方式有哪些
  18. 腾讯首次攻破屏下指纹识别技术;苹果新Mac Pro最贵将卖到4.2万;Haxe 4.0发布 | 极客头条...
  19. python算法习题(一): 排列组合
  20. 我用AI技术修万里长城

热门文章

  1. 模拟电路推荐学习书单
  2. 大神的xml解析之路
  3. 《美国如何培养核心素养》读后感作文1900字
  4. saltstack二次开发构建自己的api
  5. cross join
  6. Python图片爬取方法总结
  7. 设计中最常用的CSS选择器
  8. MongoDB学习笔记~Update方法更新集合属性后的怪问题
  9. 精通有状态vs无状态(Stateful vs Stateless)一
  10. resin3.1+apache2.2.8 整合(笔记)