Android 从用户图库中隐藏图像

Android hide image from user gallery

我正在使用以下 phonegap 构建插件:

com.chanthu.evri.gcs-file-transfer version="1.0.0"

在设备上下载图像。下载正常,但图像在用户的标准图库 myApp 文件夹中可见。如何在不创建这样的画廊的情况下保存图像?

我用来保存它们的路径是:

cdvfile://localhost/persistent/myApp/

android 设备上的路径变为:

/storage/sdcard0/myApp/

创建一个 .nomedia 文件并将其放入您存储图像的文件夹中。

此文件隐藏了文件夹及其存在时间,不会在图库中显示

您必须使用以下代码创建一个 .nomedia 文件并将其放入 myApp 文件夹中。

  try
    {
        File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/myApp");
        if(!dir.exists())
        {
            dir.mkdirs();
            String filenameForNoMedia4 = Environment.getExternalStorageDirectory().getAbsolutePath()+".nomedia";
            FileOutputStream outForNoMedia4 = new FileOutputStream(filenameForNoMedia4);

        }
    }
    catch (Exception e)
    {

    }

但是为此你需要添加对androidManifest.xml文件的权限

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

Android 是 Linux,所以在 Linux 中隐藏文件和文件夹的方法也适用于 Android。

如果要隐藏文件夹中的所有数据,只需将.nomedia文件添加到该文件夹​​即可。但是,如果您想隐藏特定文件,只需在其名称前加上 . 即可。

FOLDER 1 
|
-- .file1.txt
-- file2.txt
-- FOLDER 2
   |
   -- .nomedia
   -- file3.txt
   -- file4.txt  

在上面的场景中,FOLDER 2下的所有内容都被隐藏了,只有FOLDER 1下的file1被隐藏了。