android - 如何在 Android 中查询 EMPTY 存储桶名称列表

标签 android mediastore

我想找到所有 MediaStore 存储桶,包括其中没有任何照片的存储桶。发布在 SO 上的所有解决方案查询照片然后提取存储桶名称,但由于存储桶为空,因此查询该特定存储桶不会返回任何照片。 Gallery 应用程序本身不会显示空的存储桶/文件夹。

最佳答案

BUCKET_ID 是任何媒体的属性,基于提供者认为是什么媒体。 BUCKET_ID 是根据 MediaStore.MediaColumnsDATA 列自动计算的。 DATA 是磁盘上文件的路径。 因此,如果目录中没有媒体,则不会有 DATA,因此不会创建 BUCKET_ID 属性。

如果您需要通过它们的共同属性来区分空桶和非空桶,请使用它们的路径 file.getPath(),因为每个目录都有一个唯一的路径。

假设您的设备上有 10 个目录,其中包含媒体,而您的设备上可能有 1000 多个非媒体目录。因此,如果每次您查询 MediaStore 时 android 都搜索您设备上的所有现有目录,这是不合逻辑的。

因此,不将 id 分配给 android 中的空目录的原因是搜索其中包含媒体的目录的 id,这要快得多,因为 MediaStore 的目的是更快地访问“唯一媒体” ' 文件。

关于android - 如何在 Android 中查询 EMPTY 存储桶名称列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38712756/

相关文章:

Android webview 链接在默认浏览器中打开

android - 在 fragment 中使用进度对话框显示资源

android - 如何在 Android 中使用 MediaStore.Files 从内部和外部存储获取所有 .pdf 文件

java - 如何在 DCIM 目录(范围存储)Android Q 中创建隐藏文件夹,即 .MyFolder [(dot)MyFolder]

android - 将 AndroidSlidingUpPanel 定位到特定高度

android - Firebase 数据库按升序分页

java - 我如何为 json 解析集成 loopj

android - 如何刷新 Android 上的 MediaStore?

android - 如何将音频文件从原始文件夹保存到手机

android - 在加载图库之前刷新设备上的所有缩略图?