问题描述
我正在尝试使用MediaStore.Images.Media.DATE_TAKEN,并从Android Studio IDE收到警告,提示它要求使用API 29(Android Q)。 Google的官方文档here说这是在API级别29中添加的。这真的是真的吗?
我一直检查过以前版本的Google Sources,直到API 19(KitKat)为止,然后我看到MediaStore.MediaColumns#DATE_TAKEN字段自那时起可用。为什么官方文档说的有些不同?
Android 4.4(KitKat)MediaStore
Android 5.0(棒棒糖)MediaStore
Android 6.0(棉花糖)MediaStore
Android 7.0(牛轧糖)MediaStore
Android 8.0(Oreo)MediaStore
Android 9.0(Pie)MediaStore
有人可以澄清一下事实吗?我可以可靠地使用API 19+中的MediaStore.Images.Media.DATE_TAKEN吗?谢谢!
解决方法
感谢this answer。
从Api diff for level 29中我们可以看到DATE_TAKEN
一直存在,即使api级别低于29。唯一的区别是在Android Q之前这个const在{{1} } 但现在已移至 MediaStore.Images.ImageColumns
。同时 MediaStore.MediaColumns
扩展了 ImageColumns
。 因此 lint 无法准确识别它们。
但是,值本身在移动前后不会发生变化。因此您可以忽略警告。