Salve, sono un novizio che ha creato varie app seguendo le Vostre guide, ma molto basilari...dovrei creare un'app che crea un file di testo e dovrei chiedere i permessi di lettura/scrittura e ho seguito le istruzioni alla lettera e fatto non so quanti tentativi, ma non capisco dove sbaglio
Ho inserito nel manifest il permesso da richiedere
codice:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools">


    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />


    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.SegnaEventiDiPartita"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
e poi ho fatto la richiesta nel mainactivity ma al controllo col checkselfpermission mi da sempre negato
codice:
public class MainActivity extends AppCompatActivity {
    @Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button tasto=findViewById(R.id.tasto);

ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
PackageManager.PERMISSION_GRANTED);
                if (ContextCompat.checkSelfPermission(this,Manifest.permission.READ_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED) {
                    Toast.makeText(this, "permesso negato", Toast.LENGTH_SHORT).show();}
                else {
                    Toast.makeText(this, "permesso accettao", Toast.LENGTH_SHORT).show();
}
                }

         
    }
Ho provato a metterlo sotto un bottone in un clicklistener, ma ho l'identico risultato, ovvero che non mi compare la finestra popup che chiede all'utente il permesso di lettura