尝试获取ExifInterface时,我不断看到未检测到原始图像的错误消息。
ExifInterface exifInterface = new ExifInterface(filepath);
int rotation=exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,ExifInterface.ORIENTATION_UNDEFINED);
有谁知道是什么原因造成的?
最佳答案
这些说法是相互矛盾的。 Uri
不是文件。如果Uri
的方案是file
,则只有这样,您才可以通过getPath()
获得文件的文件系统路径。如果方案是其他任何方案(例如content
),那么您将无法获取文件系统路径,因为不需要存在文件。例如,Uri
的http://stackoverflow.com/questions/42930509/exifinterface-jni-raw-image-not-detected-error
并不意味着Android设备在/questions/42930509/exifinterface-jni-raw-image-not-detected-error
上有一个文件。ExifInterface
中的com.android.support:exifinterface
(例如,当前最新版本为25.3.0)具有a constructor that takes an InputStream
。创建一个ContentResolver
(通过getContentResolver()
上的Context
,例如Activity
)。在该openInputStream()
上调用ContentResolver
,提供Uri
(适用于file
和content
方案)。将该InputStream
传递给库的ExifInterface
构造函数。同时,这确保您不会对用户造成安全问题,并避免担心为想要检查的内容获取文件系统路径。
关于android - ExifInterface_JNI : Raw image not detected error,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42930509/