一个android文件的Uri地址一般如下:

content://media/external/images/media/62026
这是一张图片的Uri,那么我们如何根据这个Uri获得其在文件系统中的路径呢?
其实很简单,直接上代码:
public static String getRealFilePath( final Context context, final Uri uri ) {
if ( null == uri ) return null;
final String scheme = uri.getScheme();
String data = null;
if ( scheme == null )
data = uri.getPath();
else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) {
data = uri.getPath();
} else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) {
Cursor cursor = context.getContentResolver().query( uri, new String[] { ImageColumns.DATA }, null, null, null );
if ( null != cursor ) {
if ( cursor.moveToFirst() ) {
int index = cursor.getColumnIndex( ImageColumns.DATA );
if ( index > -1 ) {
data = cursor.getString( index );
}
}
cursor.close();
}
}
return data
}
如我们有一个图片的路径地址又该如何获得其Uri呢?
String type = Utils.ensureNotNull(intent.getType());
Log.d(TAG, "uri is " + uri);
if (uri.getScheme().equals("file") && (type.contains("image/"))) {
String path = uri.getEncodedPath();
Log.d(TAG, "path1 is " + path);
if (path != null) {
path = Uri.decode(path);
Log.d(TAG, "path2 is " + path);
ContentResolver cr = this.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 },
buff.toString(), null, null);
int index = 0;
for (cur.moveToFirst(); !cur.isAfterLast(); cur
.moveToNext()) {
index = cur.getColumnIndex(Images.ImageColumns._ID);
// set _id value
index = cur.getInt(index);
}
if (index == 0) {
//do nothing
} else {
Uri uri_temp = Uri
.parse("content://media/external/images/media/"
+ index);
Log.d(TAG, "uri_temp is " + uri_temp);
if (uri_temp != null) {
uri = uri_temp;
}
}
}
}
以上这篇android图片文件的路径地址与Uri的相互转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# android
# uri
# 文件路径
# Android如何通过URI获取文件路径示例代码
# Android Uri和文件路径互相转换的实例代码
# android实现Uri获取真实路径转换成File的方法
# Android7.0以上Uri转路径的方法实现(已验证)
# 给大家
# 这是
# 希望能
# 这篇
# 文件系统
# 小编
# 大家多多
# 如何获得
# 有一个
# 其实很简单
# 又该
# String
# context
# getRealFilePath
# final
相关文章:
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
,有什么在线背英语单词效率比较高的网站?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
黑客如何通过漏洞一步步攻陷网站服务器?
如何快速搭建虚拟主机网站?新手必看指南
建站主机选购指南:核心配置与性价比推荐解析
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何在阿里云服务器自主搭建网站?
建站主机是否属于云主机类型?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
定制建站流程步骤详解:一站式方案设计与开发指南
如何在万网主机上快速搭建网站?
如何高效配置香港服务器实现快速建站?
用v-html解决Vue.js渲染中html标签不被解析的问题
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
如何在香港服务器上快速搭建免备案网站?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
高端网站建设与定制开发一站式解决方案 中企动力
如何在建站主机中优化服务器配置?
建站之星如何保障用户数据免受黑客入侵?
,制作一个手机app网站要多少钱?
如何选择高效稳定的ISP建站解决方案?
建站之星后台管理:高效配置与模板优化提升用户体验
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
如何挑选高效建站主机与优质域名?
上海网站制作开发公司,上海买房比较好的网站有哪些?
如何快速生成凡客建站的专业级图册?
三星网站视频制作教程下载,三星w23网页如何全屏?
如何快速搭建高效简练网站?
做企业网站制作流程,企业网站制作基本流程有哪些?
微信小程序 input输入框控件详解及实例(多种示例)
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
如何通过.red域名打造高辨识度品牌网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
简单实现Android验证码
如何在IIS7上新建站点并设置安全权限?
php json中文编码为null的解决办法
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
如何选择适合PHP云建站的开源框架?
高防服务器:AI智能防御DDoS攻击与数据安全保障
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
建站主机功能解析:服务器选择与快速搭建指南
网站微信制作软件,如何制作微信链接?
如何用IIS7快速搭建并优化网站站点?
建站之星如何快速解决建站难题?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
图册素材网站设计制作软件,图册的导出方式有几种?
*请认真填写需求信息,我们会在24小时内与您取得联系。