Android 6.0 Marshmallow. No se puede escribir en la tarjeta SD

Tengo una aplicación que utiliza almacenamiento externo para almacenar fotografías. Según sea necesario, en su manifiesto, se solicitan los siguientes permisos

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

y utiliza lo siguiente para recuperar el directorio requerido

File sdDir = Environment
            .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd", Locale.US);
String date = dateFormat.format(new Date());
storageDir = new File(sdDir, getResources().getString(
            R.string.storagedir)
            + "-" + date);

// Create directory, error handling
if (!storageDir.exists() && !storageDir.mkdirs()) {
 ... fails here

La aplicación funciona bien en Android 5.1 a 2.3; ha estado en Google Play por más de un año.

Después de una actualización de uno de mis teléfonos de prueba (Android One) a 6, ahora devuelve un error al intentar crear el directorio requerido, "/ sdcard / Pictures / myapp-aa-mm".

La tarjeta SD está configurada como "Almacenamiento portátil". He formateado la tarjeta SD. Lo he reemplazado He reiniciado Todo fue en vano.

Además, la funcionalidad de captura de pantalla de Android incorporada (a través de Power + Lower volume) está fallando "debido al espacio de almacenamiento limitado, o la aplicación o su organización no lo permiten".

¿Algunas ideas?

Respuestas a la pregunta(6)

Su respuesta a la pregunta