1

为了获取图像的 Exif 信息,我编写了如下代码:

ExifInterface exif = new ExifInterface(path);
String aaa= (exif.getAttribute(ExifInterface.TAG_DATETIME));

我还在 AndroidManifest.xml 中添加了读、写权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

现在问题出在某些特定文件夹,例如/storage/emultaed/0/Pictures、/storage/emultaed/0/Download,exif.getAttribute(...) 的返回值为空。

我想知道是否有任何 3rd 方库可以解决这个问题?谢谢您的帮助。

4

2 回答 2

0

Exif 中实际上有几个可能的日期时间值。并非所有图像都包含曝光时间。

我维护了一个 Javametadata-extractor库,它对 Exif 和其他类型的元数据有很好的支持,还有一个简单的 API。如果 exiftool 在您的图像文件中找到日期时间,那么metadata-extractor您可以访问它。

看看 GitHub。它也可以通过 Maven 获得。

https://github.com/drewnoakes/metadata-extractor

于 2015-09-30T18:00:38.487 回答
0

有些图片工作正常 - 所以问题是数据,而不是你的代码。我怀疑某些设备/应用程序以 ExifInterface 无法解析的非标准方式对其 exif 数据进行编码。您可以使用exiftool转储 EXIF,并对其进行修改和标准化

于 2015-09-30T01:58:59.443 回答