从最近选择时ACTION_GET_CONTENT方向不正确

时间:2016-06-29 14:53:42

标签: android android-intent orientation android-gallery

我有代码供用户使用Intent.ACTION_GET_CONTENT选择图库照片,但是如果用户从“最近”或“图库”中选择,则方向会有所不同。我创建了意图:

Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT, null);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, Globals.UPLOAD_PHOTO_EXISTING);

onActivityResult中,我使用以下代码确定图像的方向:

Uri uri = data.getData();
InputStream inputStream = getContentResolver().openInputStream(uri);

String[] orientationColumn = {MediaStore.Images.Media.ORIENTATION};
Cursor cur = getContentResolver().query(uri, orientationColumn, null, null, null);

int orientation = -1;
Matrix matrix = new Matrix();

if (cur != null && cur.moveToFirst()) {
    orientation = cur.getInt(cur.getColumnIndex(orientationColumn[0]));
}
Log.i(LOG_TAG, "orientation = " + orientation);
matrix.postRotate(orientation);

当我从图库中选择图像时,我得到270的正确方向,但是当我从最近选择相同的图像时,计算的方向为0.为什么图库和最近的图像之间存在差异?

更新

以下是使用Intent.ACTION_GET_CONTENT时的选择。 “最近”选项会调出本地存储在手机上的图像。如果我从Recent或Gallery中选择完全相同的照片,为什么Uri会有所不同?

enter image description here

0 个答案:

没有答案