Я создал копию растрового изображения и использую обновление столбца MediaStore DATE_TAKEN копии с помощью DATE_TAKEN исходной фотографии.Скажем, это было 11/08/2018 в миллисекундах с 1970 года.
ContentValues mUpdateValues=new ContentValues();
mUpdateValues.put(MediaStore.Images.Media.DATE_TAKEN,millis);
int mRowsUpdated=getContentResolver().update(
getImageContentUri(this,file)
,mUpdateValues
,null
,null
);
Это сработало, потому что когда я отлаживал, mRowsUpdated показывает 1.
Но когда я пытаюсь получить его, дата в миллисекундахэто совершенно другое.Это становится 12/12/2018, которая является сегодняшней датой:
Long longDate=null;
String[] projection=new String[] {MediaStore.Images.Media.DATE_TAKEN};
Uri uri=getImageContentUri(context,new File(g.getPath()));
Cursor cur=context.getContentResolver().query(
uri
,projection
,null
,null
,null);
if(cur.moveToFirst()){//when cursor is empty
int dateColumn=cur.getColumnIndex(MediaStore.Images.Media.DATE_TAKEN);
longDate = cur.getLong(dateColumn);
}
Был забавный момент.Я получаю дату и отображаю ее в виде таблицы.Первый раз, когда я его запустил, он действительно работалНо как только я коснулся вида сетки, дата изменилась на сегодняшнюю дату.