android 中资源图片被系统相册扫描显示问题

来源:互联网 发布:iphone改内存容量数据 编辑:程序博客网 时间:2024/05/17 02:01

问题 android .nomedia

打开相册,发现应用下载的图片被显示在其中,往往这时候我们不希望把其暴露给用户。

比如:视频、图片、音频都不需要暴露给用户。
### 解决方案
* 1.修改资源文件名
* 比如图片为img/png的格式修改为ing 等等,系统不认的格式

  • 2.添加忽略文件”.nomedia”,在需要呗忽略的文件夹下创建一个名为”.nomedia”的空文件即可,系统应用即不扫描其文件。

  • code

private synchronized void addIgnore(String filePath) {        File file = new File(filePath);        if (!file.exists()) {            file.mkdirs();        }        File ignoreFile = new File(filePath + "/.nomedia");        if (ignoreFile.exists() && ignoreFile.isFile()) {            return;        }        try {            ignoreFile.createNewFile();        } catch (IOException e) {            e.printStackTrace();        }    }

参考文档

google 文档是这么介绍

说明

问题

  • 运行发现还是在显示,百思不得解。查看stackoverflow中 Android - .nomedia not working for images 也没有清晰的答案。

  • 但是答案中的一句话给了灵感,(The .nomedia file is preventive, not curative)此忽略文件是预防性质的,而不是治疗性质的。这是什么意思呢?

    • 之前已经扫描出来的资源图片/视频等等,添加nomedia文件后还是会显示
    • 添加nomedia文件后,在向该文件夹中添加资源图片/视频,这些将不会显示在系统相册中。
阅读全文
0 0