Marshmallow para Android 6.0. Não é possível gravar no cartão SD

Eu tenho um aplicativo que usa armazenamento externo para armazenar fotografias. Conforme necessário, em seu manifesto, as seguintes permissões são solicitadas

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

e usa o seguinte para recuperar o diretório necessário

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

O aplicativo funciona bem no Android 5.1 a 2.3; está no Google Play há mais de um ano.

Após a atualização de um dos meus telefones de teste (Android One) para 6, agora está retornando um erro ao tentar criar o diretório necessário "/ sdcard / Pictures / myapp-yy-mm".

O cartão SD está configurado como "Armazenamento portátil". Eu formatei o cartão SD. Eu substituí. Eu reiniciei. Tudo em vão.

Além disso, a funcionalidade de captura de tela integrada do Android (via volume Power + Lower) está falhando "devido ao espaço de armazenamento limitado ou não é permitido pelo aplicativo ou por sua organização".

Alguma ideia?

questionAnswers(6)

yourAnswerToTheQuestion