如何在android上保存图像文件的上次修改日期?
我正在开发一款android应用程序,可以压缩手机上的所有图像 我使用内容解析器来处理图像。但是,压缩后图像的最后修改日期发生了变化。我想保留日期,因为重新启动后,媒体扫描后图像的顺序会更改 使用内容解析程序更新图像上的内容值无效,因为上次修改图像的日期是在媒体扫描后重建的。 Call File.setLastModified也可能无法工作,因为此方法的有效性取决于SD卡的设置。 我需要持久的方法来保持媒体扫描后最后修改的日期。我假设内容解析器可以提供持久化属性的方法如何在android上保存图像文件的上次修改日期?,android,Android,我正在开发一款android应用程序,可以压缩手机上的所有图像 我使用内容解析器来处理图像。但是,压缩后图像的最后修改日期发生了变化。我想保留日期,因为重新启动后,媒体扫描后图像的顺序会更改 使用内容解析程序更新图像上的内容值无效,因为上次修改图像的日期是在媒体扫描后重建的。 Call File.setLastModified也可能无法工作,因为此方法的有效性取决于SD卡的设置。 我需要持久的方法来保持媒体扫描后最后修改的日期。我假设内容解析器可以提供持久化属性的方法 你能帮我吗?我不确定这个逻
你能帮我吗?我不确定这个逻辑是否能帮到你
try {
InputStream is = new URL("your image url").openStream();
BufferedInputStream bis = new BufferedInputStream(is);
Metadata metadata = ImageMetadataReader.readMetadata(bis,true);
for (Directory directory : metadata.getDirectories()) {
for (Tag tag : directory.getTags()) {
System.out.println(tag);
}
}
}
catch (ImageProcessingException e){}
catch (IOException e) {}
这是截取的代码,我们可以获得创建日期、上次修改日期等。修改EXIF信息成功!非常感谢。
如果您的文件是图像,也许您可以使用EXIF info,这样可以帮助您编写的元数据类不支持EXIF属性的设置。但我很感激!
ExifInterface exif=new ExifInterface(path);
ExifInterface exifNew=new ExifInterface(newPath);
exifNew.setAttribute(ExifInterface.TAG_DATETIME, exif.getAttribute(ExifInterface.TAG_DATETIME));
exifNew.setAttribute(ExifInterface.TAG_ORIENTATION, exif.getAttribute(ExifInterface.TAG_ORIENTATION));
exifNew.saveAttributes();