一个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
相关文章:
javascript中对象的定义、使用以及对象和原型链操作小结
香港服务器WordPress建站指南:SEO优化与高效部署策略
魔毅自助建站系统:模板定制与SEO优化一键生成指南
建站之星导航菜单设置与功能模块配置全攻略
高端智能建站公司优选:品牌定制与SEO优化一站式服务
微信小程序制作网站有哪些,微信小程序需要做网站吗?
制作销售网站教学视频,销售网站有哪些?
Swift开发中switch语句值绑定模式
如何用虚拟主机快速搭建网站?详细步骤解析
导航网站建站方案与优化指南:一站式高效搭建技巧解析
公司网站制作需要多少钱,找人做公司网站需要多少钱?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
广平建站公司哪家专业可靠?如何选择?
建站之星上传入口如何快速找到?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
如何获取免费开源的自助建站系统源码?
如何用西部建站助手快速创建专业网站?
建站主机数据库如何配置才能提升网站性能?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
济南企业网站制作公司,济南社保单位网上缴费步骤?
如何通过西部建站助手安装IIS服务器?
如何快速完成中国万网建站详细流程?
如何通过虚拟主机快速完成网站搭建?
高端建站如何打造兼具美学与转化的品牌官网?
江苏网站制作公司有哪些,江苏书法考级官方网站?
如何快速搭建支持数据库操作的智能建站平台?
深入理解Android中的xmlns:tools属性
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
,制作一个手机app网站要多少钱?
C++时间戳转换成日期时间的步骤和示例代码
建站主机服务器选型指南与性能优化方案解析
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
建站主机解析:虚拟主机配置与服务器选择指南
如何选择高效稳定的ISP建站解决方案?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
Swift中循环语句中的转移语句 break 和 continue
想学网站制作怎么学,建立一个网站要花费多少?
小程序网站制作需要准备什么资料,如何制作小程序?
如何选择美橙互联多站合一建站方案?
建站之星代理如何优化在线客服效率?
TestNG的testng.xml配置文件怎么写
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
建站三合一如何选?哪家性价比更高?
如何在万网ECS上快速搭建专属网站?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
建站之星如何助力网站排名飙升?揭秘高效技巧
为什么Go需要go mod文件_Go go mod文件作用说明
*请认真填写需求信息,我们会在24小时内与您取得联系。