问题 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();
}
}
参考文档
问题
运行发现还是在显示,百思不得解。查看stackoverflow中 Android - .nomedia not working for images 也没有清晰的答案。
但是答案中的一句话给了灵感,(The .nomedia file is preventive, not curative)此忽略文件是预防性质的,而不是治疗性质的。这是什么意思呢?
- 之前已经扫描出来的资源图片/视频等等,添加nomedia文件后还是会显示
- 添加nomedia文件后,在向该文件夹中添加资源图片/视频,这些将不会显示在系统相册中。