尝试获取ExifInterface时,我不断看到未检测到原始图像的错误消息。

ExifInterface exifInterface = new ExifInterface(filepath);
int rotation=exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,ExifInterface.ORIENTATION_UNDEFINED);

有谁知道是什么原因造成的?

最佳答案



这些说法是相互矛盾的。 Uri不是文件。如果Uri的方案是file,则只有这样,您才可以通过getPath()获得文件的文件系统路径。如果方案是其他任何方案(例如content),那么您将无法获取文件系统路径,因为不需要存在文件。例如,Urihttp://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(适用于filecontent方案)。将该InputStream传递给库的ExifInterface构造函数。同时,这确保您不会对用户造成安全问题,并避免担心为想要检查的内容获取文件系统路径。

关于android - ExifInterface_JNI : Raw image not detected error,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42930509/

10-14 17:26