如何解决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 举报,一经查实,本站将立刻删除。