Italian Leggere file.pdf

Fabio68

Member
Licensed User
Buongiorno, ho creato un applicazione in cui desidero poter aprire un file pdf ma se seleziono un applicazione di terzi, come ad esempio Adobe Acrobat, mi dice che è impossibile aprire il file ma se gli chiedo di aprirlo con l'applicazione per la stampa funziona, qualcuno per cortesia è in grado di indicarmi dove sbaglio? grazie in anticipo.

B4X:
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    'Activity.LoadLayout("Layout1")
    
    rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
    Wait For Activity_PermissionResult (Permission As String, result As Boolean)
    
        If result Then
        File.Copy(File.DirAssets, "esempio.pdf", File.DirRootExternal, "esempio.pdf")
        Dim i As Intent
        Dim FileName As String
        FileName = File.Combine(File.DirRootExternal, "esempio.pdf")
        i.Initialize(i.ACTION_VIEW, FileName )
        i.SetComponent("android/com.android.internal.app.ResolverActivity")
        i.SetType("application/pdf")
        i.WrapAsIntentChooser("Choose PDF Viewer")
        StartActivity(i)
        
            End If
    
        
    
End Sub
 

Filippo

Expert
Licensed User
Ciao @Fabio68 ,

usa questa classe.
Aggiungi nella classe questo Sub:
B4X:
Public Sub SharePDF(FileName As String)
    File.Copy(File.DirAssets, FileName, shared, FileName)
    Dim i As Intent 'Requires a reference to the Phone library
    i.Initialize(i.ACTION_VIEW, CreateFileProviderUri(shared, FileName))
    i.SetType("application/pdf")
    i.Flags = 1
    i.WrapAsIntentChooser("Choose PDF Viewer")
    StartActivity(i)
End Sub

e per aprire un file PDF:
B4X:
Sub OpenPDF
        Dim OpenPDF As clsSendMail
        OpenPDF.Initialize
        OpenPDF.SharePDF("esempio.pdf")
End Sub
 
Top