MediaStore DATE_TAKEN的替代解决方案

问题描述

我在应用程序中使用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,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
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)