android:本地缓存图片、视频等数据暴露在系统相册

一、前言:

为了减少数据请求的次数以及优化用户的体验,图片、视频等数据一般需要缓存到本地内存。但是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));
        }
    }
}

你可能感兴趣的:(android:本地缓存图片、视频等数据暴露在系统相册)