android 获取uri的正确文件路径的办法

来源:互联网 发布:苹果手机4g网络怎么开 编辑:程序博客网 时间:2024/06/11 17:05

资源描述:

 有时会从其他的文件浏览器获取路径,这时根据路径去数据库取文件时会发现不成功,原因是由于android的文件浏览器太多,各自返回的路径不统一,而android本身的数据库中的路径是绝对路径,即"/mnt"开头的路径。

private String getRealPath(Uri fileUrl){
String fileName = null;
Uri filePathUri = fileUrl;
if(fileUrl!= null){
if (fileUrl.getScheme().toString().compareTo("content")==0) //content://开头的uri

Cursor cursor = mContext.getContentResolver().query(videoUrl, null, null, null, null);
if (cursor != null && cursor.moveToFirst())
{
int column_index = cursor.getColumnIndexOrThrow(***.***.***.DATA);
fileName = cursor.getString(column_index); //取出文件路径
if(!fileName.startsWith("/mnt")){
//检查是否有”/mnt“前缀

fileName = "/mnt" + fileName; 
}
cursor.close();
}
}else if (videoUrl.getScheme().compareTo("file")==0) //file:///开头的uri
{
fileName = filePathUri.toString();
fileName = filePathUri.toString().replace("file://", "");
//替换file://
if(!fileName.startsWith("/mnt")){
//加上"/mnt"头
fileName += "/mnt"; 
}
}
}
return fileName;
}


转自 http://dev.wo.com.cn/docportal/doc_queryMdocDetail.action?mdoc.docindex=6332

感谢作者!

原创粉丝点击