Упаковка «скрытые» файлы актива
Вопрос
Я помещаю файл '.Nomedia' в папку, чтобы избежать MediaScanner Android от обнаружения медиафайлов в папке. Мне нужно скопировать эту папку (включая «.Nomedia») из активов APK на SD-карту (поэтому другие приложения могут использовать эти медиа-файлы и т. Д.). Когда я упаковываю APK в Eclipse, он не пакет файла '.Nomedia'. Предположительно, он обнаруживает его как скрытый файл. Любые идеи, как это исправить? Есть ли секретный флаг AAPT, который я могу использовать? Я хотел бы избежать копирования папки, а затем вручную создавать папку «.Nomedia», если это возможно.
Решение
Я знаю, что это несколько лет после того, как вопрос спросил, но я столкнулся с этим вопросом, поиске по тому же вопросу, и обнаружил решение, которое работало для меня, поэтому я подумал, что опубликую это:
В вашем файле «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.
Другие советы
Активы получают компиляцию в приложение, вы не можете видеть их через браузер файлов. Вам придется получить доступ к этой папке из кода, а затем скопировать ее в файловую систему, когда приложение впервые запущено или установлено. Посмотрите на этот пример, он говорит о файле базы данных, но в целом вы хотите сделать то же самое для любого файла, который вы помещаете в активы и хотите перейти к файловой системе:
http://www.helloAndroid.com/tutorials/how-have-default-database.