Now, I am getting this error on the below 2nd sub:
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
/storage/emulated/0/Android/data/b4a.example3/files
** Activity (main) Resume **
dir:/storage/emulated/0
file name:2nd_app.apk
main_createfileprovideruri (B4A line: 126)
Return FileProvider.RunMethod("getUriForFile", Ar
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:131)
at b4a.example3.main._createfileprovideruri(main.java:756)
at b4a.example3.main$ResumableSub_SendInstallIntent.resume(main.java:876)
at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:240)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:180)
at anywheresoftware.b4a.BA$2.run(BA.java:360)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Caused by: java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/2nd_app.apk
at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:711)
at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:400)
... 14 more
Private Sub SendInstallIntent
Dim ApkName As String = "2nd_app.apk"
File.copy(File.DirAssets, ApkName, File.DirRootExternal, ApkName)
Dim i As Intent
If phone.SdkVersion >= 24 Then
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
If Result Then
i.Initialize("android.intent.action.INSTALL_PACKAGE", CreateFileProviderUri(File.DirRootExternal, ApkName))
i.Flags = Bit.Or(i.Flags, 1) 'FLAG_GRANT_READ_URI_PERMISSION
End If
Else
i.Initialize(i.ACTION_VIEW, "file://" & File.Combine(File.DirRootExternal, ApkName))
i.SetType("application/vnd.android.package-archive")
End If
StartActivity(i)
End Sub
Sub CreateFileProviderUri (Dir As String, FileName As String) As Object
Dim FileProvider As JavaObject
Dim context As JavaObject
context.InitializeContext
FileProvider.InitializeStatic("android.support.v4.content.FileProvider")
Dim f As JavaObject
f.InitializeNewInstance("java.io.File", Array(Dir, FileName))
Return FileProvider.RunMethod("getUriForFile", Array(context, Application.PackageName & ".provider", f)) 'ERROR HERE
End Sub