Разные Uris указывают на разные столбцы курсора для DATE_TAKEN - PullRequest
0 голосов
/ 07 ноября 2018

Моя проблема в том, что я пытаюсь получить длинный номер фотографии DATE_TAKEN. Один из способов получить Uri - это выбрать через ACTION PICK Intent и получить Uri в OnActivityResult (). Этот способ работает. Я получаю дату. Индекс столбца для 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);
}

Я научился создавать контент: // стиль Uri из этой статьи . Но проблема в том, что когда я создаю курсор таким образом, индекс dateColumn будет равен -1, по некоторым причинам. Вот Ури:

enter image description here

Выдает эту ошибку:

enter image description here

...