Android避免缓存资源被系统扫描并显示(.nomedia)

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王富贵王富贵王富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值