Per accedere a file che si trovano in area esterna a quella dedicata al programma (ma non sulle schedine SD che vanno trattate diversamente) devi utilizzare 19 e non 28 nel Manifest.
La soluzione più sicura è utilizzare GetSafeDirDefaultExternal, il quale non richiede permessi da Android 4.4 in su (da cui il 19 per API 19) mentre necessita del permesso WRITE_EXTERNAL_STORAGE per le versioni precedenti. Quindi quella parte di codice nel Manifest copre le esigenze di device inferiori alla 4.4
In origine era 18, ma si è visto che alcuni device 4.4 non getsivano correttamente la cosa, quindi è stato modificato in 19.
AddManifestText(
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="19" />
)
Per quanto riguarda la "camera" , se la utilizzi tramite Intent non necessiti di alcun permission. Se invece fai uso di librerie tipo Camera/Camera2 o similari allora al Manifest, in genere, andrebbe aggiunto qualcosa tipo:
AddPermission("android.permission.CAMERA")
AddPermission("android.permission.FLASHLIGHT")