??Android默認(rèn)情況下會(huì)將每個(gè)多媒體文件的信息保存在一個(gè)數(shù)據(jù)庫(kù)中(在系統(tǒng)收到某些消息,比如開(kāi)機(jī)、插拔SD卡、設(shè)備連接上電腦這種涉及到可能更改文件系統(tǒng)內(nèi)容的情況下,會(huì)觸發(fā)系統(tǒng)掃描文件系統(tǒng)中的多媒體文件變化情況并同步到媒體數(shù)據(jù)庫(kù)中;或者應(yīng)用發(fā)送更新多媒體庫(kù)廣播時(shí),也會(huì)觸發(fā)多媒體數(shù)據(jù)庫(kù)的更新),應(yīng)用在需要讀取設(shè)備內(nèi)指定格式的多媒體文件信息時(shí),可以直接讀取這個(gè)數(shù)據(jù)庫(kù),相比于文件全盤(pán)檢索效率會(huì)高很多。
??但是,有時(shí)候我們并不希望某些多媒體文件被媒體庫(kù)掃描到,比如:
應(yīng)用的音效不希望被音樂(lè)播放器掃描到;
有些游戲的介紹視頻不希望被視頻播放器掃描到;
應(yīng)用緩存的圖片不希望被相冊(cè)掃描到;
??這種情況可以在不希望被保存到多媒體數(shù)據(jù)庫(kù)中的文件夾下新建一個(gè)隱藏文件,文件名為".nomedia"即可。官網(wǎng)并沒(méi)有明確介紹.nomedia文件的使用,但可以通過(guò)搜索關(guān)鍵詞,在Storage Options的頁(yè)面中找到對(duì).nomedia文件的解釋,我的理解是有.nomedia文件的文件夾下的多媒體文件信息不會(huì)保存到多媒體數(shù)據(jù)庫(kù)中,在系統(tǒng)更新媒體數(shù)據(jù)庫(kù)時(shí)會(huì)視這個(gè)文件夾不見(jiàn):
Include an empty file named .nomedia in your external files directory (note the dot prefix in the filename). This prevents media scanner from reading your media files and providing them to other apps through the MediaStore content provider.
??對(duì)Android多媒體庫(kù)的詳細(xì)介紹網(wǎng)上資料比較少,這篇文章介紹得比較全面,值得一讀:Android掃描多媒體文件剖析