在onActivityResult里面返回的Uri uri = data.getData();如果是android4.4 uri格式为content://com.android.providers.media.documents/document/image:3952,4.4以下格式为
content://media/external/images/media/3951,要获取图片的存储路径需要,根据系统的版本使用不同的方法获得,代码如下:
- if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT){//4.4及以上
- String wholeID = DocumentsContract.getDocumentId(contentUri);
- String id = wholeID.split(:)[1];
- String[] column = { MediaStore.Images.Media.DATA };
- String sel = MediaStore.Images.Media._ID + =?;
- Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, column,
- sel, new String[] { id }, null);
- int columnIndex = cursor.getColumnIndex(column[0]);
- if (cursor.moveToFirst()) {
- filePath = cursor.getString(columnIndex);
- }
- cursor.close();
- }else{//4.4以下,即4.4以上获取路径的方法
- String[] projection = { MediaStore.Images.Media.DATA };
- Cursor cursor = context.getContentResolver().query(contentUri, projection, null, null, null);
- int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
- cursor.moveToFirst();
- filePath = cursor.getString(column_index);
- }
复制代码