2010-06-09 68 views
4

爲了避免Android的MediaScanner檢測文件夾中的媒體文件,我將文件'.nomedia'放入文件夾。我需要將這個文件夾(包括'.nomedia')從APK的資產複製到SD卡(所以其他應用程序可以使用這些媒體文件等)。當我將APK打包到Eclipse中時,它不打包'.nomedia'文件。據推測,它將其檢測爲隱藏文件。任何想法如何解決這一問題?有我可以使用的祕密適應標誌嗎?如果可能,我想避免複製文件夾,然後手動創建'.nomedia'文件夾。打包「隱藏」資產文件

+0

爲什麼複製文件夾然後創建.nomedia文件是一個問題? – 2010-06-09 15:53:25

+0

只是簡化了代碼的通用性。如果我想在未來添加包含媒體的更多文件夾,我寧願不必每次都不斷地更改代碼。簡單地能夠在我想保護的文件夾中放置一個.nomedia文件會更好。 – ChaimKut 2010-06-09 16:48:40

回答

8

我知道這是幾年後,問題被問到,但我碰到這個問題自己尋找同樣的問題,並發現瞭解決方案,爲我工作,所以我想我會張貼它:

在你的「ant.properties 「文件爲您的項目(創建一個新的,如果你沒有它)添加這兩行:

# DO NOT ignore the .nomedia file in the assets directory! 
aapt.ignore.assets="!.svn:!.git:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~" 

這將從默認排除列表中刪除「。*」,因此.nomedia現在將包含在您的.APK內的資產目錄中。

1

資產被編譯到應用程序中,您無法通過文件瀏覽器查看它們。您必須從代碼訪問此文件夾,然後在應用程序首次啓動或安裝時將其複製到文件系統。看看下面這個例子,它談論的數據庫文件,但一般你想要做同樣的事,你把資產的任何文件,並想移動到文件系統:

http://www.helloandroid.com/tutorials/how-have-default-database

+0

我已經成功地將資產文件夾中的文件複製到SD。我遇到的麻煩特別是'.nomedia'文件,這個文件似乎無法從APK中找到。看起來在編譯時,.nomedia根本不包含在最終APK中,而所有其他文件確實包含在內。 – ChaimKut 2010-06-09 22:34:50