MediaStore - BUCKET_DISPLAY_NAME 仅出现在 API 29+ 上?
Posted
技术标签:
【中文标题】MediaStore - BUCKET_DISPLAY_NAME 仅出现在 API 29+ 上?【英文标题】:MediaStore - BUCKET_DISPLAY_NAME only present on API 29+? 【发布时间】:2020-01-05 16:23:22 【问题描述】:我计划查询 MediaStore.Images.Media.BUCKET_DISPLAY_NAME 字段,但 android Studio 说它仅在 API 29+ 上可用。另外,Android docs 也是这么说的。
但是,我发现 this *** post 从 2017 年开始使用相同的字段。
我在这里错过了什么?
谢谢。
编辑:我也在 Android 9.0 模拟器上尝试过,效果很好。
【问题讨论】:
【参考方案1】:查看API diff 和当前的MediaStore source 时,我们可以看到在Android 10 (API 29) 之前,BUCKET_DISPLAY_NAME
是在MediaStore.Images.ImageColumns
内部声明的。在 API 29 上,此属性已移至 MediaStore.MediaColumns
(MediaStore.Images.ImageColumns
实现),但常量的实际值是相同的。
所以看起来它只是简单地移到了父界面,但它的值是一样的。
【讨论】:
我想知道谷歌是否正在做一些事情来避免这样的混乱。 谢谢!我们遇到了类似的情况,将MediaStore.Images.ImageColumns.ORIENTATION
更改为MediaStore.MediaColumns.ORIENTATION
。你有没有找到任何干净的解决方案?以上是关于MediaStore - BUCKET_DISPLAY_NAME 仅出现在 API 29+ 上?的主要内容,如果未能解决你的问题,请参考以下文章
Android:通过 MTP 连接时如何检测 MediaStore 的变化