2010-06-09 48 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