Sub Class_Globals
Private ion As Object
Private phone As Phone
Private apk_filename As String
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize(apk_name As String)
apk_filename = apk_name
End Sub
Public Sub Install As ResumableSub
File.copy(File.DirInternalCache, apk_filename, Starter.Provider.SharedFolder, apk_filename)
Dim i As Intent
If phone.SdkVersion >= 24 Then
i.Initialize("android.intent.action.INSTALL_PACKAGE", Starter.Provider.GetFileUri(apk_filename))
i.Flags = Bit.Or(i.Flags, 1) 'FLAG_GRANT_READ_URI_PERMISSION
Else
i.Initialize(i.ACTION_VIEW, "file://" & File.Combine(Starter.Provider.SharedFolder, apk_filename))
i.SetType("application/vnd.android.package-archive")
End If
'TODO - C'è da vedere come e se funziona
StartActivityForResult(i)
Wait For ion_Event (MethodName As String, Args() As Object)
Log(MethodName)
For Each o In Args
Log(o)
Next
Return True 'TODO
End Sub
Private Sub StartActivityForResult(i As Intent)
Dim jo As JavaObject = GetBA
ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null)
jo.RunMethod("startActivityForResult", Array As Object(ion, i))
End Sub
Private Sub GetBA As Object
Dim jo As JavaObject = Me
Return jo.RunMethod("getBA", Null)
End Sub