L'autorisation Android READ_EXTERNAL_STORAGE ne fonctionne pas

Je suis en train de créer une application simple qui peut obtenir une image de la Galerie de l'application et de l'afficher sur un imageButton. Je suis en essais avec l'API 21 sur un téléphone sous Android 5.0.1. Malheureusement, peu importe ce que j'essaie, je reçois une erreur de sécurité - même quand je spécifier les autorisations.

Mon code pour obtenir la récupération de l'image est:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent){
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent);

    switch(requestCode){
        case PICK_IMAGE_REQUEST:
            if(resultCode == RESULT_OK && imageReturnedIntent != null && imageReturnedIntent.getData() != null) {
                Uri uri = imageReturnedIntent.getData();
                try {
                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
                    //Log.d(TAG, String.valueOf(bitmap));
                    ImageButton ib = (ImageButton) findViewById(R.id.inputImg);
                    ib.setImageBitmap(bitmap);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            break;
    }
}

Le code fonctionne quand j'essaie de sélectionner une image à partir de Dropbox, mais lorsque je sélectionne une image dans la galerie, je reçois

java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/35634 from pid=25240, uid=10070 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()

J'ai fait la permission de balise pour READ_EXTERNAL_STORAGE un enfant de manifeste:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="[REDACTED]">

    <uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="23" />

    <uses-permission tools:node="replace" android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="18" />

    <application>
        [REDACTED]
    </application>

</manifest>

J'ai cherché haut et bas sur d'autres posts, mais encore n'arrive pas à comprendre pourquoi je suis encore en train de ce fichus d'erreur.

source d'informationauteur Zheryu