Ciao,
come suggerito da Filippo leggi bene quel thread e segui l'omologo video predisposto da Erel.
Ci sono un paio di punti da precisare:
"If the targetSdkVersion is lower than 23 then the standard permissions system will be used on all devices including Android 6+" , quindi se non devi pubblicare su Google Play Store e per ora ti va bene avere come target al max 22 allora non devi far nulla.
Per "File.DirDefaultExternal" si applicano i permessi , mentre è "GetSafeDirDefaultExternal" che permette di aggirare parzialmente il problema. Infatti leggiamo:
The explanation for this is that GetSafeDirDefaultExternal doesn't require any permission on Android 4.4+ (API 18) and requires the WRITE_EXTERNAL_STORAGE on older versions. The code above adds the permission to older devices.
Quindi settando il minimo a 18 (e di device con versioni minori di 4.4 sembrerebbero essercene pochi in giro) e max a 26 non sono richiesti permessi, mentre abbassando il limite ad includere device più vecchi è necessario aggiungere al Manifest quel codice riportato da Erel in modo da getsire i permessi per questo tipo di device.
Conclusione: utilizza min 18 e max 26, usa GetSafeDirDefaultExternal e pubblica pure su Google Play senza problemi.
ps: sempre che non ti sia sufficiente memorizzare il file in DirInternal, l'area "privata" della tua app..
udg