阻止在gallery应用中列出的目录

时间:2018-01-03 13:36:13

标签: android

我正在处理我正在发送/接收图像/媒体的聊天应用程序。我将这些文件写入发送和接收的目录中。 现在的问题是,如果我在聊天中从图库发送图像,我将其复制到Sdcardpath + AppName/Images/Sent/。 在这种情况下,发送文件夹中的图像是重复的。 而图库应用程序显示已发送文件夹与图像。我需要一种方法,以便画廊无法读取SentFolder。下面是我创建目录的代码。

 public static File getImageSentDirectory() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        File dir = new File(Environment.getExternalStorageDirectory() + DOCUMENT_FILE_SENT_PATH);
        if (!dir.exists())
            dir.mkdirs();
        return dir;
    } else {
        File dir = new File(getAppContext().getFilesDir() + DOCUMENT_FILE_SENT_PATH);
        if (!dir.exists())
            dir.mkdirs();
        return dir;
    }
}

我也试过了。

dir.setWritable(true,true);
dir.setReadable(true,true);

但是在重新启动时,设备库应用程序正在显示带有图像的已发送文件夹。

2 个答案:

答案 0 :(得分:3)

在"已发送"中添加.nomedia文件目录。 这将使'"画廊"应用程序会跳过您的文件夹,因此无法列出。

。WhamedApp媒体目录中的.nomedia文件就像这样。它是一个零字节文件。

nomedia file

答案 1 :(得分:0)

  

我需要一种方法让galery无法读取SentFolder。

不要将SentFolder放在external storage上。把它放在internal storage上。

.nomedia建议可能有所帮助,但这是一项惯例,而非规则。任何具有外部存储读取权限的应用程序都可以访问您放在外部存储上的任何文件。如果您不想这样,请不要将文件放在外部存储器上。