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

问题 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文件后,在向该文件夹中添加资源图片/视频,这些将不会显示在系统相册中。

猜你喜欢

转载自blog.csdn.net/sinat_24196195/article/details/78125639