app的一些缓存图片理论上是不让出现在相册的 但是相册会扫描出来他可以进行限制
File file = new File(filePath + "/.nomedia" ); if (!file.exists()){try { file.createNewFile(); } catch (Exception e) { e.printStackTrace(); }}
创建一个nomedia这样在系统进行扫描的时候就会过滤这些资源 从而一下缓存资源就不会显示在你的相册了
官网对.nomedia的解释是
在媒体扫描程序中隐藏您的文件在您的外部文件目录中包含名为 .nomedia
的空文件(注意文件名中的点前缀)。 这将阻止媒体扫描程序读取您的媒体文件,并通过 MediaStore内容提供程序将其提供给其他应用。 但如果您的文件真正是应用的私有文件,则应该将其保存在应用私有的目录中。
Android默认情况下会将每个多媒体文件的信息保存在一个数据库中(在系统收到某些消息,比如开机、插拔SD卡、设备连接上电脑这种涉及到可能更改文件系统内容的情况下,会触发系统扫描文件系统中的多媒体文件变化情况并同步到媒体数据库中;或者应用发送更新多媒体库广播时,也会触发多媒体数据库的更新),应用在需要读取设备内指定格式的多媒体文件信息时,可以直接读取这个数据库,相比于文件全盘检索效率会高很多。
但是,有时候我们并不希望某些多媒体文件被媒体库扫描到,比如:
应用的音效不希望被音乐播放器扫描到;
有些游戏的介绍视频不希望被视频播放器扫描到;
应用缓存的图片不希望被相册扫描到;
这种情况可以在不希望被保存到多媒体数据库中的文件夹下新建一个隐藏文件,文件名为”.nomedia”即可。官网并没有明确介绍.nomedia文件的使用,但可以通过搜索关键词,在Storage Options的页面中找到对.nomedia文件的解释,我的理解是有.nomedia文件的文件夹下的多媒体文件信息不会保存到多媒体数据库中,在系统更新媒体数据库时会视这个文件夹不见:
这条我是一个搬运工 因为以前我也不知道
原创博文1
原创博文2