Android如何在images目录下创建我们自己的文件夹?

Android如何在images目录下创建我们自己的文件夹?,android,Android,我们有一个应用程序可以下载图像并将其存储在设备上。图像已存储,但在打开gallery时无法看到应用程序文件夹。下面是我们用来创建目录的代码: public File getDataFolder(Context context) { File dataDir = null; if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { dataDir = new File

我们有一个应用程序可以下载图像并将其存储在设备上。图像已存储,但在打开gallery时无法看到应用程序文件夹。下面是我们用来创建目录的代码:

public File getDataFolder(Context context) {
    File dataDir = null;
    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
        dataDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + File.separator + "MYAPPNAME");

        if(!dataDir.isDirectory()) {
            dataDir.mkdirs();
        }
    }
    if(!dataDir.isDirectory()) {
        dataDir = context.getFilesDir();
    }

    return dataDir;
}

我们还注意到,文件夹在Jelly bean中可见,但在KitKat+设备中不可见。为什么它在画廊里不可见?(文件为.jpg格式)

在Android Kitkat之前,第三方应用程序可以访问外部存储,但在Kitkat中,此权限被撤销。现在,您只能在设备的内部内存中存储数据。

您是否尝试过使用getExternalFilesDirs()

使用getExternalFilesDirs()(注意复数形式)。如果返回多个条目,则第二个和后续条目位于可移动介质上。在Android 4.4上,您可以在没有任何权限的情况下读写这些目录

根据这个答案

编辑 如果重新启动后出现文件夹,则需要将图像添加到库中。从简单拍照教程():


当新文件在多媒体资料中可见而无需重新启动时,您必须在新文件上调用媒体扫描仪。保存文件后,请致电媒体扫描程序


只有几行代码可以。代码经常在这个网站上发布。

但是我们可以看到像Whatsapp图片、OGQ墙纸、Deviantart等文件夹。。他们是怎么创造的?因为这句话不是真的。所有应用程序都可以使用外部存储来完成它们想要的任务。但对于可移动存储,访问受到限制。出于不适用于外部存储的安全原因。我还建议查看“简单拍照”教程,其中有一节介绍如何将照片添加到gallery,但在重新启动设备后,这些照片在gallery应用程序中可见<代码>文件夹可见。你是说在画廊里?也可以尝试使用文件资源管理器。当您第一次说图像已存储时,您的帖子和问题令人困惑。@greenapps重新启动后,它是如何出现的?如果不重新启动,它将不可见?文件夹是可见的果冻豆,是的,在厨房里,我们可以看到它。我们所说的“图像已存储”是因为图像下载后,我们可以将其传递给intent,这意味着图像正在下载和保存,但在gallery中不可见(无需重新启动)
private void galleryAddPic() {
    Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    File f = new File(mCurrentPhotoPath);
    Uri contentUri = Uri.fromFile(f);
    mediaScanIntent.setData(contentUri);
    this.sendBroadcast(mediaScanIntent);
}