android通过uri得到文件对象,安卓[android] 通过Uri获取File文件
/**
* 通过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文件相关推荐
- 【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )
文章目录 一.创建 XmlParser 解析器 二.获取 Xml 文件中的节点 三.获取 Xml 文件中的节点属性 四.完整代码示例 一.创建 XmlParser 解析器 创建 XmlParser 解 ...
- iphone 传android,安卓和苹果手机怎么互传文件_安卓与苹果手机之间互传文件的方法教程_3DM手游...
一直以来,很多的app都是分为安卓和IOS两个版本,在使用上,两个平台之间很多功能都不能跨平台使用.比如大家在玩游戏时充值的东西,在苹果充值之后,同一个账号转到安卓手机上玩,那些东西都是不能迁移进来的 ...
- iphone android互传文件夹,安卓和苹果手机怎么互传文件_安卓与苹果手机之间互传文件的方法教程_3DM手游...
一直以来,很多的app都是分为安卓和IOS两个版本,在使用上,两个平台之间很多功能都不能跨平台使用.比如大家在玩游戏时充值的东西,在苹果充值之后,同一个账号转到安卓手机上玩,那些东西都是不能迁移进来的 ...
- android 解析midi文件,基于安卓的乐音识别及MIDI文件输出的研究和实现
基于安卓的乐音识别及MIDI文件输出的研究和实现 语音识别技术已经取得了不少进步,比如人们可以和Siri在苹果手机上对话了.另一个技术相关领域也有进展,乐音跟踪识别,比如微信可以摇一摇搜歌,手机根据& ...
- Android -- 创建XML文件对象及其序列化, pull解析XML文件
1. 创建XML文件对象及其序列化 示例代码:(模拟以xml格式备份短信到SD卡) SmsInfo.java, bean对象 /*** 短信的业务bean* @author Administrator ...
- android os能删掉那,安卓手机里的那些英文文件夹到底都是啥?可不可以删除?...
原标题:安卓手机里的那些英文文件夹到底都是啥?可不可以删除? 对于使用安卓手机的强迫症患者来说,文件夹必须经常清理,尽管里面没有任何东西,也必须要彻底删除.虽然强迫症治好了,但总会不小心误删一些重要的 ...
- 双鱼林 android 服务器,双鱼林安卓Android代码生成器下载_双鱼林安卓Android代码生成器官方下载-太平洋下载中心...
双鱼林安卓Android 代码生成器是一款生成安卓手机程序的代码生成器 基于分层模式设计思想,生成的代码直接导入Ecli PSe软件就可以用的!真正面向对象设计:系统的整体设计,提供通过使用面向对象的 ...
- android studio 课程表,基于课程表的安卓Android手机控制APP设计(AndroidStudio,SQLite)(含录像)...
基于课程表的安卓Android手机控制APP设计(AndroidStudio,SQLite)(含录像)(毕业论文12000字,程序代码) 摘 要 随着IT技术的发展,以前老套的课程表内容查询管理方式已 ...
- 手机中geetest是什么文件_安卓手机里这些全英文件夹,到底是什么?删了它,手机瞬间多了5个G...
关注"践行者鱼嫩子","置顶公众号",点击"查看历史消息 ",这样您就可以每天继续免费收到文章了.点击 ",会有更多精彩呈现.每天 ...
最新文章
- linux内核功能有,好消息!LINUX内核2.6.18终于支持实时功能了
- Android之Android:layout_weight详解
- Win7输入法消失和不能切换的办法了
- alipay html5 app,H5App支付宝开发详解
- canvas 图片反色
- 101次从入门到放弃,终于找到一个数据分析利器!
- xss攻击突破转义_每个人都应该了解的7种xss漏洞
- 【movable-area、movable-view】 可移动区域组件说明
- JS学习(this关键字)
- 3.6 tensorflow 中LSTM和GRU模块使用意境级讲解
- 01-【分析】神策系统的拆解与分析
- Oracle 锁表问题查询处理
- 小米手机只能进fastboot怎么办?
- Unity 之 ShaderGraph 实现火焰效果入门级教程
- PCL学习(四)点云转换为网格
- 巴比特 | 元宇宙每日必读:入职三个月就遭遣散,热潮过后的元宇宙会走向哪里?...
- 吴忠军 - 养生之道 老人健康长寿的大秘诀
- 调试心得plc做主站(客户端)
- excel文件不能编辑怎么回事?
- 53. 验证外星语词典