Obteniendo todo el tiempo "permiso denegado" o "ningún archivo o directorio" al intentar guardar la imagen de mapa de bits. ¿Qué tengo que hacer?

Estoy tratando de guardar la imagen de mapa de bits con este código:

File sdcard = Environment.getExternalStorageDirectory();
            String filename = "test";
            File folder = new File(sdcard, "/Download");
            Log.v("ImageStorage1", "EXiST?: " + folder.exists());
            folder.mkdirs();
            Log.v("ImageStorage2", "EXIST!: " + folder.exists());
            Log.v("ImageStorage", "Folder: " + folder);
            File file = new File(folder, filename + ".jpg");

            try {
                FileOutputStream out = new FileOutputStream(file.getAbsoluteFile());
                result.compress(Bitmap.CompressFormat.JPEG, 90, out);
                out.flush();
                out.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

También estoy usando en el archivo de manifiestos:

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

Pero estoy recibiendo este:

V/ImageStorage1: EXiST?: true
V/ImageStorage2: EXIST!: true
W/System.err: java.io.FileNotFoundException: 
/storage/emulated/0/Download/test.jpg (Permission denied)
    W/System.err:     at java.io.FileOutputStream.open0(Native Method)
    W/System.err:     at java.io.FileOutputStream.open(FileOutputStream.java:287)
    W/System.err:     at java.io.FileOutputStream.<init>(FileOutputStream.java:223)
    W/System.err:     at java.io.FileOutputStream.<init>(FileOutputStream.java:171)

En realidad, mi tarea es almacenar en otra carpeta y cuando estoy usando esto:

File folder = new File(sdcard, "/kpi/test/a");

Me estoy poniendo

V/ImageStorage1: EXiST?: false
V/ImageStorage2: EXIST!: false
(No such file or directory)

Incluso con:

folder.mkdirs();

Intenté mucho y navegué mucho, pero no encontré una respuesta :(

Respuestas a la pregunta(1)

Su respuesta a la pregunta