Я создаю приложение для Android и добавил опцию для сохранения мультимедиа, например изображений и видео, мне нужно иметь возможность изменить дату изменения файла на текущую дату и время. Я использовал метод File для сохранения файлов. Я видел, что это известная проблема с методом .setLastModified () в Android, но я не могу найти другое решение этой проблемы. Этот метод, похоже, ничего не делает по крайней мере на моем устройстве (Google Pixel 2). У него будет только оригинальная дата.
Я даже пытался сделать какой-нибудь «грязный метод» с помощью метода RandomFileAccess () (я покажу код ниже), но безуспешно.
File rootPath = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), "imageAlbum");
if(!rootPath.exists()) {
rootPath.mkdirs();
}
File localFile = new File(rootPath,filename.toLowerCase());
Затем я использую firebase и метод .getFile ().
Вот что я имею в виду под "грязным" методом.
RandomAccessFile raf = null;
try {
raf = new RandomAccessFile(rootPath + "/" + finalFilename.toLowerCase(), "rw");
long length = raf.length();
raf.setLength(length + 1);
raf.setLength(length);
raf.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
localFile.setLastModified(System.currentTimeMillis());
Но опять не повезло.
EDIT:
Вот код, который я использую для firebase.
String finalFilename = filename;
storageReference.getFile(localFile).addOnCompleteListener(new OnCompleteListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<FileDownloadTask.TaskSnapshot> task) {
if (task.isSuccessful()) {
localFile.setLastModified(System.currentTimeMillis());
{
Я пытался использовать метод ".setLastModified" до и после вызова методов firebase.