Android中URI的转换关于file和content相互转换工具类
2017-02-09 15:17
537 查看
调用时:File imageFile = getFileByUri(Uri);
工具类:
public File getFileByUri(Uri uri) { String path = null; if ("file".equals(uri.getScheme())) { path = uri.getEncodedPath(); if (path != null) { path = Uri.decode(path); ContentResolver cr = this.getContentResolver(); StringBuffer buff = new StringBuffer(); buff.append("(").append( MediaStore.Images.ImageColumns.DATA).append("=").append("'" + path + "'").append(")"); Cursor cur = cr.query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA }, buff.toString(), null, null); int index = 0; int dataIdx = 0; for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) { index = cur.getColumnIndex( MediaStore.Images.ImageColumns._ID); index = cur.getInt(index); dataIdx = cur.getColumnIndex( MediaStore.Images.ImageColumns.DATA); path = cur.getString(dataIdx); } cur.close(); if (index == 0) { } else { Uri u = Uri.parse("content://media/external/images/media/" + index); System.out.println("temp uri is :" + u); } } if (path != null) { return new File(path); } } else if ("content".equals(uri.getScheme())) { // 4.2.2以后 String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = this.getContentResolver().query(uri, proj, null, null, null); if (cursor.moveToFirst()) { int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); path = cursor.getString(columnIndex); } cursor.close(); return new File(path); } else { // Log.i(TAG, "Uri Scheme:" + uri.getScheme()); } return null; }
相关文章推荐
- Android中文件File path与content:// Uri的相互转换
- 文件File path与content:// Uri的相互转换
- Android Uri,Path与File的相互转换(新)
- Android中file开头的uri转换为content开头的ur:
- android图片文件的路径地址与Uri的相互转换
- android Uri获取真实路径转换成File的方法
- Android杂记(3)关于Uri转化为File
- 【重头学习Android】关于path与URI的转换
- Android 关于SD卡、机身内存以及分辨率的转换的工具类
- 15、关于String,File,InputStream之间的相互转换
- android Uri获取真实路径转换成File的方法
- android Uri获取真实路径转换成File的方法
- android 图片路径path和uri之间的相互转换
- android Uri获取真实路径转换成File的方法
- Android dp、px、sp相互转换、获取屏幕宽高工具类
- Android工具类——TimeUtils时间戳与时间字符串相互转换
- android图片文件的路径地址与Uri的相互转换
- android实现Uri获取真实路径转换成File的方法
- android 路径地址与Uri的相互转换 uri转string
- Android Uri转换成真实File路径