android 获取uri的正确文件路径的办法
有时会从其他的文件浏览器获取路径,这时根据路径去数据库取文件时会发现不成功,原因是由于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;
}
更多相关文章
- 在android studio的虚拟机的sd卡上创建文件夹
- Android 使用decodeFile方法加载手机磁盘中的图片文件
- Android的sqlite3路径
- Android AudioRecord录音实时pcm 编码为 aac 文件
- android保存文件
- Android情景模式、文件管理器 完整示例编程详解
- android ndk-build log输出文件