Exif数据TAG_ORIENTATION始终为0

我需要知道从画廊(由相机拍摄)的图像的方向。 我最初的方法是使用MediaStore.Images.Media.ORIENTATION这是我的Droid 1的工作。当在HTC Thunderbolttesting手机只保存0到该字段。

然后我转向阅读exif数据:

ExifInterface exifReader = new ExifInterface(mFilePath); exifReader.getAttributeInt(ExifInterface.TAG_ORIENTATION, -1); 

这也为每个图像返回0。 任何人有关于如何正确地获取Android上的照片的方向的想法?

Related of "Exif数据TAG_ORIENTATION始终为0"

这是我在activity中使用onActivityResult()的代码。 返回的意图是为了挑选types为image / *的图像。 适合我!

 Uri imageUri = intent.getData(); String[] orientationColumn = {MediaStore.Images.Media.ORIENTATION}; Cursor cur = managedQuery(imageUri, orientationColumn, null, null, null); int orientation = -1; if (cur != null && cur.moveToFirst()) { orientation = cur.getInt(cur.getColumnIndex(orientationColumn[0])); } Matrix matrix = new Matrix(); matrix.postRotate(orientation); 

我的解决scheme

从exif数据中删除任何检查方向。 我找不到一个准确的例子。

使用标准的String[] orientationColumn = {MediaStore.Images.Media.ORIENTATION}; 得到一个方向。

如果这是0使用decodeStream …

 if(o.outHeight > o.outWidth){ //set orientation to portrait } 

否则它是风景

这是一个错误,我发现这是涉及到另一个Android的bug ..我find了一个合理的解决scheme张贴在这里https://stackoverflow.com/a/8864367/137404