Я исследовал и пробовал множество вариантов, чтобы попытаться заставить это работать, но, к сожалению, у меня ничего не получается.
Я пытаюсь установить тег Date Taken (Tag_DateTime) в Exif-данных JPEG из приложения Android. У меня уже есть рабочий код для установки тегов широты и долготы, но я никак не могу добиться установки тега даты съемки.
Вот код:
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();
}
Я где-то читал, что тег должен быть записан в формате миллисекунд, так что попробовал и это, но безрезультатно. Чтобы подтвердить соответствие моего форматирования с тем, что хранится на самом деле, я прочитал и вывел неформатированный тег из jpeg-файла, который имеет тег Date Taken, но он имеет точно такой же формат, как и тот, что я записываю в тег, и он по-прежнему не работает.
Возможно, стоит упомянуть, что я рассматривал класс Sanselan, чтобы сделать это, но из-за сложности и отсутствия примеров я бы предпочел попытаться заставить работать мое существующее решение, прежде чем переходить на совершенно другое.
Удалось ли кому-нибудь сделать это, и если да, то что я делаю не так?