1) Partiamo dal primo errore non c'è un permesso SHARED da chiedere.
intent viene lanciata ma per problemi di permessi non riesce a leggere il file
Con SHARED si intende una cartella, non un permesso. Accedere in questa cartella non richiede permessi, ma si serve l'indirizzo URI.
Con la variabile RuntimePermissions chiedi di aprire/creare un luogo SICURO e di chiamarlo ad esempio SHARED.
Poi lo passi come parametro alla metodo FileShared di android che restituisce un URI che potrai usare con l'Intent
Mentre quando parliamo di permessi o meglio permessi critici per i quali è necessario chiedere autorizzazione in runtime sono i seguenti:
Nel caso della condivizione , chiedi casomai i permessi di lettura (o scrittura che includono anche la lettura) se il file da condividere (PDF,TXT o altro) non si trova dentro le cartelle dell'App ma nella memoria del dispositivo. Nella Root principale o in una delle sue cartelle o sotto cartelle.
Nel tuo esempio il file si trova
all'interno dell'App, quindi non richiede il permesso di lettura delle cartelle del dispositivo.
___________________________________________________________
2) COME SI USANO I PERMESSI
I permessi si dichiarano o nel modulo Starter o nel GLOBALS.
Chiedi il permesso in Activity_Resume, Activity_Create() o in starter, in base a cosa hai scelto e devi aspettare che ricevi la risposta nell'Activity Result cosi:
Sub Activity_PermissionResult (Permission As String, Result As Boolean)
If Permission=rp.PERMISSION_WRITE_EXTERNAL_STORAGE And Result Then
PermessoDato=Result
End If
End Sub
Prima di ogni lettura devi verificare la tua variabile (nell'esempio sopra
PermessoDato) per verificare se hai il permesso altrimenti mandi un avviso all'utente e richiedi di nuovo il permesso
rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)