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

更多相关文章

  1. Android软件安装工具-APK安装器
  2. Android(安卓)OTA 升级之三:生成recovery.img
  3. Android(安卓)Studio设置 标题栏隐藏, 状态栏隐藏, 改变状态栏文
  4. android 自定义进度条颜色
  5. Android读写XML(下)——创建XML文档
  6. 在Ubuntu(Linux)上安装Android(安卓)Studio
  7. Android的SDK,NDK以及JNI
  8. Pycharm安装PyQt5的详细教程
  9. NPM 和webpack 的基础使用

随机推荐

  1. 一网打尽__Android(安卓)开源代码合集(Web
  2. 【MTK】修改开机重启概率性BUG——无法正
  3. Android(安卓)Studio 之 对话框开发(Dial
  4. Android(安卓)Bluetooth opp package 学
  5. Android在onCreate或者在Fragment的onCre
  6. Android(安卓)加载等待控件 ZFProgressHU
  7. 解决-Android: 跨应用AIDL调用时报错 jav
  8. Android(安卓)获取系统时间
  9. Android(安卓)动态显示和隐藏状态栏详解
  10. Android(安卓)众多优秀的下拉刷新