我创建了位图的副本,并使用原始照片的DATE_TAKEN更新了副本的MediaStore DATE_TAKEN列。假设是从1970年开始,以毫秒为单位的2018年11月8日。
ContentValues mUpdateValues=new ContentValues();
mUpdateValues.put(MediaStore.Images.Media.DATE_TAKEN,millis);
int mRowsUpdated=getContentResolver().update(
getImageContentUri(this,file)
,mUpdateValues
,null
,null
);
之所以起作用,是因为在我调试时,mRowsUpdated显示为1.。
但是当我尝试检索它时,以毫秒为单位的日期是完全不同的。现在是今天的11/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);
}
有一个有趣的时刻。我正在检索日期并将其显示在网格视图项中。我第一次运行它,它实际上起作用了!但是,一旦我触摸了网格视图,日期就会更改为今天的日期。