如何查询 Android 中的空桶名称列表

How to query list of EMPTY bucket names in Android

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

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

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

假设您的设备上有 10 个目录,其中包含媒体,而您的设备上可能有 1000 多个非媒体目录。因此,如果每次查询 MediaStore.

时 android 搜索设备上的所有现有目录,这是不合逻辑的

所以不为 android 中的空目录分配 ID 的原因是搜索内部有媒体的目录的 ID,这要快得多,因为 MediaStore 的目的是更快地访问'only media' 个文件。