我想找到所有 MediaStore 存储桶,包括其中没有任何照片的存储桶。发布在 SO 上的所有解决方案查询照片然后提取存储桶名称,但由于存储桶为空,因此查询该特定存储桶不会返回任何照片。 Gallery 应用程序本身不会显示空的存储桶/文件夹。
最佳答案
BUCKET_ID
是任何媒体的属性,基于提供者认为是什么媒体。 BUCKET_ID
是根据 MediaStore.MediaColumns
的 DATA
列自动计算的。 DATA
是磁盘上文件的路径。
因此,如果目录中没有媒体,则不会有 DATA
,因此不会创建 BUCKET_ID
属性。
如果您需要通过它们的共同属性来区分空桶和非空桶,请使用它们的路径 file.getPath()
,因为每个目录都有一个唯一的路径。
假设您的设备上有 10 个目录,其中包含媒体,而您的设备上可能有 1000 多个非媒体目录。因此,如果每次您查询 MediaStore
时 android 都搜索您设备上的所有现有目录,这是不合逻辑的。
因此,不将 id 分配给 android 中的空目录的原因是搜索其中包含媒体的目录的 id,这要快得多,因为 MediaStore
的目的是更快地访问“唯一媒体” ' 文件。
关于android - 如何在 Android 中查询 EMPTY 存储桶名称列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38712756/