Android缓存图片,在系统图库却看不见。怎么做到的?答:新建“.nomedia”的文件即可。

转载自:http://blog.csdn.net/spare_h/article/details/7466145

开发项目需求:
自己的应用中会缓存很多图片到本地,不想让系统图库扫描到自己的图片或者不想对用户浏览图片造成影响。

方法:

.nomedia文件作用:应用中的图片不被系统图库扫描

“.nomedia”文件放在任何一个文件夹下都会把该文件夹下所有媒体文件(图片,mp3,视频)隐藏起来不会在系统图库,铃声中出现。

新建.nomedia文件的方法:
1.Windows系统的新建文件不能新建.nomedia文件

新建方法:
Java
new File(dir, “.nomedia”).createNewFile();

2. CMD命令行
copy con .nomedia 回车
然后此时屏幕上有一个光标在闪烁,说明等待你输入该文件内容,如果想建立空内容文件,这里就什么都不输入,这时按下ctrl+Z键再回车,就生成一个空文件。该文件拷贝到需要隐藏图片视频的文件夹中。
3.Linux Shell
vi .nomedia
:wq

========================================================================

Android项目可用以下代码实现新建.nomedia文件

manifest.xml申请读写权限:

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Java代码:

File nomedia = new File( "xxx/xxx/" , ".nomedia");
    try {
        if (!nomedia.exists())
        nomedia.createNewFile();
        FileOutputStream nomediaFos = new FileOutputStream(nomedia);
        nomediaFos.flush();
        nomediaFos.close();
        } catch (IOException e) {
        Log.e("IOException", "exception in createNewFile() method");
        return;
    }

 ==========================================================================================

有些特定软件会在缓存图片文件夹自动生成名为“.nomedia”的文件,屏蔽了其他软件的扫描。
代表此文件夹里面的MP3、MP4、RMVB、JPEG等图片音频视频等媒体文件,所以系统图库看不到。
但一些特殊软件如 快图、MX Player也可以在设置中取消辨认这些文件!


posted @ 2014-12-15 10:00  绚丽星空  阅读(7232)  评论(0编辑  收藏  举报