I found the answer and made it work!! I didn't say it in my OP, but I should've specified I'm targetting android 12 (api 31), and that demands some legacy-oriented tweaking of the manifest. In the android developer docs it is specified you have to declare your needed permissions as follows:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
That solved the problem and now the permission is both requested at runtime and listed in the app info area in settings.