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