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

时间:2016-08-02 05:58:56

标签: android mediastore

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

1 个答案:

答案 0 :(得分:1)

BUCKET_ID是基于提供商视为媒体的任何媒体的属性。 BUCKET_ID会自DATA MediaStore.MediaColumns列自动计算DATADATA是磁盘上文件的路径。 因此,如果目录中没有媒体,则不会有BUCKET_ID,因此不会创建file.getPath()属性。

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

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

因此,没有将id分配给来自android的空目录的原因是搜索其中包含媒体的目录的ID,这要快得多,因为<data:post.author/>的目的是更快地访问“仅”媒体& #39;文件。