以下代码成功地用于检索使用 Android 相机完成的图像所具有的方向,只要它在 Android 模拟器上执行,它就可以通过 ExifInterface 读取:
orientation=Integer.valueOf(exif.getAttribute(ExifInterface.TAG_ORIENTATION));
但在小米设备中,它总是返回值 0,根据 EXIF 规范,这将是一个保留值。
也许,小米设备不支持从 ExifInterface 获取值,但它能够成功检索以下值:
double vel = exif.getAttributeDouble(ExifInterface.TAG_SHUTTER_SPEED_VALUE, 0);
因此,它可以正确获得最后一个值,但对于 Orientation 来说不是正确的值,这看起来有点奇怪。
这两个数据按如下顺序检索:
double vel = exif.getAttributeDouble(ExifInterface.TAG_SHUTTER_SPEED_VALUE, 0);
shutterSpeed =((double ) 1/ Math.round(Math.pow(2.0, vel)));
orientation=Integer.valueOf(exif.getAttribute(ExifInterface.TAG_ORIENTATION));
所以,我也没有看到任何与图像相关的原因,可能还没有准备好获得它的方向。
如果可能的话,我想坚持使用 ExifInterface 来获取方向,因为经过一些研究,看起来很难确定 Android 设备是否使用后置摄像头,如果它甚至可以做到的话。