On devices running Android 10 and later, no permissions are requires to read or write an app's own shared storage or private storage. An app cannot modify another app's shared file.
If android.api < 33 reading another app's shared storage requires READ_EXTERNAL_STORAGE permission.
If android.api >= 33 use one or more of READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, READ_MEDIA_AUDIO, READ_EXTERNAL_STORAGE see Android docs. Despite what it says in the Android docs, READ_EXTERNAL_STORAGE is required only to read another app's shared file when the file is part of the Documents collection.
There is one special case which is different from typical desktop usage. An app cannot read another app's file in the Downloads directory, regardless of permissions.
On devices running Android 9 and less, WRITE_EXTERNAL_STORAGE is required for any file writes. Or READ_EXTERNAL_STORAGE if the app only wants to do shared storage reads.
"