You need to request READ_EXTERNAL_STORAGE. You can access the gallery without it, but if you want to do anything with the media that you receive from the gallery, you will need READ permission.
A quick test of what happens in onActivityResult after the image has been selected in the gallery:
Disclaimer: reading com.android.providers.media.MediaProvider uri content: // media / external / images / media from pid = 8405, uid = 10177 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission ()
source share