quindi dovrei solo modificare il targetSDK da 26 a 27 per esempio ? in più aggiungere quel codice nella activity_create
No. Target 26 va bene e ti obbliga (da Target = 23) ad usare i permessi.
READ_EXTERNAL_STORAGE / WRITE_EXTERNAL_STORAGE
This is the most common dangerous permission. It is added automatically when you use File.DirDefaultExternal or
File.DirRootExternal.
However there is a simple workaround for this.
1. Use RuntimePermissions.GetSafeDirDefaultExternal("") instead of File.DirDefaultExternal. The parameter passed is an optional subfolder that will be created under the default folder.
2. Add this code to the manifest editor:
Code:
AddManifestText(
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
)
Quindi se non hai assoluta necessità di riferirti a DirRootExternal, puoi copiare quelle poche righe nel Manifest, spuntare la libreria RuntimePermissions, ed inserire la riga
RuntimePermissions.GetSafeDirDefaultExternal("mathtest") per ricavare la dir su cui scrivere/leggere.
Se invece ti occorre proprio DirRootExternal, nel Manifest non metti nulla, in Process_Gobals metti
Private rp As RuntimePermissions
e in Activity_Create metti:
rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
Sistemata la questione permessi, prova qualcosa del tipo:
If File.Exists(File.Combine(File.Combine(File.DirRootExternal, "mathtest"),"ListResult.txt")) Then