Альтернативное решение для MediaStore DATE_TAKEN

#android #mediastore

#Android #mediastore

Вопрос:

Я использую MediaStore.MediaColumns.DATE_TAKEN в своем приложении. Взятая дата является точной для существующих изображений. Однако для недавно добавленных изображений это будет отображаться как Jan 1, 1970 . Что еще более странно, так это то, что дата останется неизменной, пока я не перезапущу свой телефон, после чего она будет отображаться правильно.

Примечание: одинаковое поведение на 2 устройствах, оба под управлением Android 10 (с момента DATE_TAKEN добавления в Q ) и от разных производителей. Простой перезапуск приложения тоже не работает.

Редактировать: я с нетерпением жду альтернативного решения для DATE_TAKEN. Ниже приведен код, который я использую в настоящее время.

 val projection = arrayOf(_ID, DISPLAY_NAME, DATE_TAKEN)
val sortOrder = "$DATE_TAKEN DESC"

app.contentResolver.query(
    EXTERNAL_CONTENT_URI,
    projection,
    null,
    null,
    sortOrder
)?.use {

    val idColumn = it.getColumnIndexOrThrow(_ID)
    val nameColumn = it.getColumnIndexOrThrow(DISPLAY_NAME)
    val dateColumn = it.getColumnIndexOrThrow(DATE_TAKEN)
    while (it.moveToNext()) {
        val id = it.getLong(idColumn)
        val displayName = it.getString(nameColumn)
        val contentUri = ContentUris.withAppendedId(EXTERNAL_CONTENT_URI, id)
        val date = durationToDate(it.getLong(dateColumn))
        val img = Image(id, displayName, date, contentUri)
        result  = img
    }
}
  

Комментарии:

1. Это больше похоже на отчет об ошибке, а не на вопрос

2. @Pawel Чего я с нетерпением жду, так это альтернативного решения для DATE_TAKEN. Позвольте мне отредактировать вопрос, чтобы прояснить его.

3. Чего я с нетерпением жду, так это того, что вы опубликуете использованный код.

4. @blackapps добавил код MediaStore, который я использую 🙂

5. Вы, конечно, должны опубликовать код, с помощью которого вы добавляете изображения.