2016-08-02 1 views

답변

1

BUCKET_ID은 제공자가 미디어로 간주하는 것을 기반으로 한 모든 미디어의 속성입니다. BUCKET_IDMediaStore.MediaColumnsDATA 열에서 자동으로 계산됩니다. DATA은 디스크의 파일 경로입니다. 디렉토리에 미디어가 없으면 DATA이 없으므로 결과로 BUCKET_ID 속성이 생성되지 않습니다.

빈 버켓과 비어 있지 않은 버킷을 공통된 속성으로 구분해야하는 경우 각 디렉토리에 고유 한 경로가 있으므로 file.getPath() 경로를 사용하십시오.

기기에 미디어가있는 디렉토리가 10 개 있고 기기에 미디어가없는 디렉토리가 1000 개 이상 있다고 가정 해 보겠습니다. 따라서 안드로이드가 사용자가 MediaStore을 쿼리 할 때마다 기기의 기존 디렉토리를 모두 검색하는 것은 비논리적입니다.

안드로이드의 빈 디렉토리에 id를 지정하지 않은 이유는 그 안에 미디어가있는 디렉토리의 ID를 통해 검색하는 것입니다. MediaStore의 목적은 '미디어 파일'에 더 빨리 액세스 할 수 있기 때문입니다.

+0

은 10 개의 미디어 디렉토리 제한이 문서화되어 있습니까? 필자가 설명한 것과 비슷하게 구현했지만, PICTURES 디렉토리에 10 개 이상의 디렉토리를 만들 수 있었고 이미지가 배치되면 MediaStore가 적절한 BUCKET_ID를 생성하고있었습니다. –

+0

'어딘가에 10 개의 미디어 디렉토리 제한이 문서화되어 있습니까? '제 3 번째 단락을 편집했습니다. 이 번호는 설명의 편의를위한 가상의 예에 불과하지 않습니다. – Eftekhari