2016-08-02 31 views
1

我想查找所有MediaStore存儲桶,包括其中沒有任何照片的存儲桶。 SO上發佈的所有解決方案都會查詢照片,然後提取存儲桶名稱,但由於存儲桶是空的,查詢將不會返回該特定存儲桶的照片。圖庫應用程序本身不顯示空的桶/文件夾。如何查詢Android中的EMPTY存儲桶名稱列表

回答

1

BUCKET_ID是基於提供者視爲媒體的任何媒體的屬性。從DATAMediaStore.MediaColumns自動計算出BUCKET_IDDATA是磁​​盤上文件的路徑。 因此,如果目錄中沒有媒體,則不會有DATA,因此沒有BUCKET_ID屬性創建發生。

如果您需要通過它們共有的屬性來區分空桶和非空桶,請使用它們的路徑file.getPath(),因爲每個目錄都有唯一的路徑。

想象一下,您的設備上有10個內含媒體的目錄,而設備上可能包含超過1000個非媒體包含的目錄。因此,如果Android在每次查詢您的設備時都搜索設備上的所有現有目錄,這是不合邏輯的。

所以,從android中分配id到空目錄背後的原因是通過其中有媒體的目錄的ID進行搜索,因爲MediaStore的目的是更快地訪問「僅媒體」文件。

+0

是10媒體目錄限制某處記錄?我幾乎完成了類似於您所描述的實現,但我已經能夠在PICTURES目錄中創建10個以上的目錄,並且一旦將圖像放入它們中,MediaStore就會生成適當的BUCKET_ID。 –

+0

'是否有10個媒體目錄限制在某處?'編輯我的第三段。沒有這個數字只是一個想象的例子,便於解釋。 – Eftekhari

相關問題