首页 > 解决方案 > MediaStore.MediaColumns#DATE_TAKEN 是否仅适用于 API 级别 29?

问题描述

我正在尝试使用MediaStore.Images.Media.DATE_TAKEN并从 Android Studio IDE 收到警告说它需要 API 29 (Android Q)。此处的 Google 官方文档说这是在 API 级别 29 中添加的。这是真的吗?

在 API 19 (KitKat) 之前,我一直检查过去版本的 Google Sources,我看到 MediaStore.MediaColumns#DATE_TAKEN 字段从那时起可用。为什么官方文档说的不一样?

Android 4.4 (KitKat)媒体商店

Android 5.0 (Lollipop)媒体商店

Android 6.0(棉花糖)媒体商店

Android 7.0(牛轧糖)媒体商店

Android 8.0(奥利奥)媒体商店

Android 9.0(派)媒体商店

有人可以澄清真相吗?我可以从 API 19+可靠地使用MediaStore.Images.Media.DATE_TAKEN吗?谢谢!

标签: androidandroid-4.4-kitkatmediastoreandroid-10.0

解决方案


感谢这个答案

级别 29 的 Api diff 中,我们可以看到它DATE_TAKEN一直存在,即使 api 级别低于 29。唯一的区别是,在 Android Q 之前,这个 const 存在,MediaStore.Images.ImageColumns但现在被移到MediaStore.MediaColumns了。同时ImageColumns延伸MediaColumns因此,lint 无法准确识别它们。

但是,值本身在移动前后不会改变。所以你可以忽略警告。


推荐阅读