모든 MediaStore 버킷을 찾을 수 있습니다. SO에 게시 된 모든 솔루션은 사진을 쿼리 한 다음 버킷 이름을 추출하지만 버킷은 비어 있으므로 특정 버킷에 대한 쿼리에서 반환 할 사진이 없습니다. 갤러리 앱 자체에는 빈 버킷/폴더가 표시되지 않습니다.안드로이드에서 EMPTY 버킷 이름 목록을 조회하는 방법
1
A
답변
1
BUCKET_ID
은 제공자가 미디어로 간주하는 것을 기반으로 한 모든 미디어의 속성입니다. BUCKET_ID
은 MediaStore.MediaColumns
의 DATA
열에서 자동으로 계산됩니다. DATA
은 디스크의 파일 경로입니다. 디렉토리에 미디어가 없으면 DATA
이 없으므로 결과로 BUCKET_ID
속성이 생성되지 않습니다.
빈 버켓과 비어 있지 않은 버킷을 공통된 속성으로 구분해야하는 경우 각 디렉토리에 고유 한 경로가 있으므로 file.getPath()
경로를 사용하십시오.
기기에 미디어가있는 디렉토리가 10 개 있고 기기에 미디어가없는 디렉토리가 1000 개 이상 있다고 가정 해 보겠습니다. 따라서 안드로이드가 사용자가 MediaStore
을 쿼리 할 때마다 기기의 기존 디렉토리를 모두 검색하는 것은 비논리적입니다.
안드로이드의 빈 디렉토리에 id를 지정하지 않은 이유는 그 안에 미디어가있는 디렉토리의 ID를 통해 검색하는 것입니다. MediaStore
의 목적은 '미디어 파일'에 더 빨리 액세스 할 수 있기 때문입니다.
은 10 개의 미디어 디렉토리 제한이 문서화되어 있습니까? 필자가 설명한 것과 비슷하게 구현했지만, PICTURES 디렉토리에 10 개 이상의 디렉토리를 만들 수 있었고 이미지가 배치되면 MediaStore가 적절한 BUCKET_ID를 생성하고있었습니다. –
'어딘가에 10 개의 미디어 디렉토리 제한이 문서화되어 있습니까? '제 3 번째 단락을 편집했습니다. 이 번호는 설명의 편의를위한 가상의 예에 불과하지 않습니다. – Eftekhari