DATE_TAKEN的不同Uris指向不同的光标列

时间:2018-11-07 15:38:44

标签: java android android-contentprovider

我的问题是我想获取一张DATE_TAKEN张长照片。我获取Uri的一种方法是通过ACTION PICK Intent选择并在OnActivityResult()中获取Uri。这种方式有效。我知道日期。 DATE_TAKEN的列索引为0。这是Uri:

enter image description here

首先,要清楚。这是图像,是图像的副本。我需要将照片移到文件夹。因此,我需要创建一个新的位图并将其重命名。在这里,我从给它的新文件路径中获得了Uri:

String[] projection=new String[] {MediaStore.Images.Media.DATE_TAKEN};
Uri photoUri= FileProvider.getUriForFile(context
    ,BuildConfig.APPLICATION_ID+".provider"
    ,new File(g.getPath()));
    Cursor cur=context.getContentResolver().query(photoUri,projection,null,null,null);
if(cur.moveToFirst()){//when cursor is empty
int dateColumn=cur.getColumnIndex(MediaStore.Images.Media.DATE_TAKEN);
longDate = cur.getLong(dateColumn);
}

我从this article学到了创建content://样式Uri的方法。 但是问题是当我以这种方式创建游标时,出于某种原因,dateColumn索引将为-1。这是Uri:

enter image description here

它抛出此错误:

enter image description here

0 个答案:

没有答案