La imagen de selección de Android de la galería no funciona (Android 6.0 y Android 5.1.1)

Estoy usando el siguiente código para elegir un archivo de imagen de la galería del dispositivo:

Primero llamo a este fragmento de código:

Intent i = new Intent();
i.setType("image/*");
i.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(i, "Select Picture"), RESULT_LOAD_IMAGE);

Este es mionActivityResult método:

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

        if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {

            photoPath  = getPath(data.getData());
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            FileInputStream fis;
            try {
                fis = new FileInputStream(new File(photoPath));
                byte[] buf = new byte[1024];
                int n;
                while (-1 != (n = fis.read(buf))) {
                    baos.write(buf, 0, n);
                }

                img.setImageBitmap(BitmapFactory.decodeFile(photoPath));

            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }

Y este es un método auxiliar para recuperar la ruta de la imagen:

private String getPath(Uri uri) {

        String[]  data = { MediaStore.Images.Media.DATA };
        CursorLoader loader = new CursorLoader(getApplicationContext(), uri, data, null, null, null);
        Cursor cursor = loader.loadInBackground();
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }

Mi problema es que la aplicación es rara. En mi emulador 6.0, a veces funciona y a veces no. En otro dispositivo (Android 5.1.1) unFileNotFound Exception se lanza en esta línea

fis = new FileInputStream(new File(photoPath));

Todos los permisos requeridos están bien. ¿Tienen alguna idea de lo que está pasando aquí? ¿O tienes alguna sugerencia mejor sobre qué usar para elegir una imagen de la galería?

Respuestas a la pregunta(3)

Su respuesta a la pregunta