您的位置:首页 > 移动开发 > Android开发

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

2012-05-24 21:37 471 查看
有时会从其他的文件浏览器获取路径,这时根据路径去数据库取文件时会发现不成功,原因是由于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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: