一、前言:
为了减少数据请求的次数以及优化用户的体验,图片、视频等数据一般需要缓存到本地内存。但是android的系统相册可以检测到本地内存中的图片并展示。这样就造成了数据不安全和用户体验差等问题。所以在本地缓存图片是要做一些处理。方法如下:
-
生成.nomedia 文件夹
原理是系统相册扫描SD卡时会把media_type = 1 或者 media_type = 3的文件展示在相册中(media_type值对应的文件类型:0 - 普通文件 、1 - 图片文件 、2 - 音频文件 、3 - 视频文件),而图库会自动跳过有.nomedia文件,将扫描到的图片、铃声等多媒体文件media_type设置为0。
具体方法就是将缓存下来的文件至于.nomedia文件夹下:
private void uploadWeb(String dataPath) {
filePath = Environment.getExternalStorageDirectory() + "/DCIM/.nomedia/";
String fileName = "Healthfarm";
File file = new File(filePath + fileName);
// 判断文件夹是否存在,如果不存在则解压
if (!file.exists()) {
try {
DownloadUtil.unzip(DownloadUtil.getHealthFarmFilePath(dataPath), filePath);
} catch (Exception e) {
FileUtil.deleteFile(DownloadUtil.getHealthFarmFilePath(dataPath));
}
}
}