Android預設情況下會将每個多媒體檔案的資訊儲存在一個資料庫中(在系統收到某些消息,比如開機、插拔SD卡、裝置連接配接上電腦這種涉及到可能更改檔案系統内容的情況下,會觸發系統掃描檔案系統中的多媒體檔案變化情況并同步到媒體資料庫中;或者應用發送更新多媒體庫廣播時,也會觸發多媒體資料庫的更新),應用在需要讀取裝置内指定格式的多媒體檔案資訊時,可以直接讀取這個資料庫,相比于檔案全盤檢索效率會高很多。
但是,有時候我們并不希望某些多媒體檔案被媒體庫掃描到,比如:
應用的音效不希望被音樂播放器掃描到;
有些遊戲的介紹視訊不希望被視訊播放器掃描到;
應用緩存的圖檔不希望被相冊掃描到;
這種情況可以在不希望被儲存到多媒體資料庫中的檔案夾下建立一個隐藏檔案,檔案名為”.nomedia”即可。官網并沒有明确介紹.nomedia檔案的使用,但可以通過搜尋關鍵詞,在Storage Options的頁面中找到對.nomedia檔案的解釋,我的了解是有.nomedia檔案的檔案夾下的多媒體檔案資訊不會儲存到多媒體資料庫中,在系統更新媒體資料庫時會視這個檔案夾不見:
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.
對Android多媒體庫的詳細介紹網上資料比較少,這篇文章介紹得比較全面,值得一讀:Android掃描多媒體檔案剖析