文件File path与content:// Uri的相互转换
16lz
2021-01-26
content Uri to path
/** * Gets the corresponding path to a file from the given content:// URI * @param selectedVideoUri The content:// URI to find the file path from * @param contentResolver The content resolver to use to perform the query. * @return the file path as a string */public static String getFilePathFromContentUri(Uri selectedVideoUri, ContentResolver contentResolver) { String filePath; String[] filePathColumn = {MediaColumns.DATA}; Cursor cursor = contentResolver.query(selectedVideoUri, filePathColumn, null, null, null);// 也可用下面的方法拿到cursor// Cursor cursor = this.context.managedQuery(selectedVideoUri, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); filePath = cursor.getString(columnIndex); cursor.close(); return filePath;}
path to content Uri
/** * Gets the content:// URI from the given corresponding path to a file * @param context * @param imageFile * @return content Uri */public static Uri getImageContentUri(Context context, java.io.File imageFile) { String filePath = imageFile.getAbsolutePath(); Cursor cursor = context.getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Images.Media._ID }, MediaStore.Images.Media.DATA + "=? ", new String[] { filePath }, null); if (cursor != null && cursor.moveToFirst()) { int id = cursor.getInt(cursor .getColumnIndex(MediaStore.MediaColumns._ID)); Uri baseUri = Uri.parse("content://media/external/images/media"); return Uri.withAppendedPath(baseUri, "" + id); } else { if (imageFile.exists()) { ContentValues values = new ContentValues(); values.put(MediaStore.Images.Media.DATA, filePath); return context.getContentResolver().insert( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); } else { return null; } } }
更多相关文章
- android handler和message的常用方法
- Android通过广播接收者调用服务内方法
- android 一步一步创建jni示例
- Telephony单元测试分析
- Android(安卓)开启关闭软键盘
- Android数据库升级、降级、创建(onCreate() onUpgrade() onDowng
- RecyclerView的canScrollVertically方法踩坑
- Property Anim详解
- AndroidGUI13:ViewTreeObserver的常用技巧