我已经研究并尝试了许多选项来尝试让这个工作,但很遗憾一直没有进展。
我正在尝试从Android应用程序中设置JPEG的Exif数据中的拍摄日期标签(Tag_DateTime)。 我已经有了可用于设置纬度和经度标签的工作代码,但是我无法设置拍摄日期标签。
以下是代码:
SimpleDateFormat fmt_Exif = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");
try {
ExifInterface exif = new ExifInterface(filePhoto.getPath());
// Set and save the GPS and time data
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, strLat);
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, strLong);
exif.setAttribute(ExifInterface.TAG_DATETIME, fmt_Exif.format(locLatestLocation.getTime()));
exif.saveAttributes();
} catch (IOException e) {
e.printStackTrace();
}
- locLatestLocation - 用于获取毫秒时间的位置。
- fmt_Exif - SimpleDateFormat 用于将毫秒时间格式化为 TAG_DateTime Exif 标签所需的正确格式。
- strLat & strLong - 在其他地方以正确的格式填充,以设置纬度和经度标签。
我在某个帖子中读到,该标签需要以毫秒格式编写,因此我也尝试过这种方法,但没有成功。为了确认我的格式与实际存储的格式相同,我从具有“拍摄日期”标签的 jpeg 文件中读取并输出了未格式化的标签,但输出格式与我写入标签的格式完全相同,仍然无法工作。
还值得一提的是,我已经研究了 Sanselan 类来完成此操作,由于其复杂性和缺乏示例,我更愿意尝试让现有解决方案正常工作,而不是完全改变成一个全新的解决方案。
如果有人成功完成了这个任务,请告诉我我做错了什么??