Android Question Install app from another application

Discussion in 'Android Questions' started by wes58, May 29, 2019.

  1. wes58

    wes58 Active Member Licensed User

    I wanted to install an app from another application. I came across this thread
    I have tried to follow anexample in this thread, but the result from the Sub CanRequestPackageInstalls was always false, even if installation of applications from unknown sources was enabled.

    I had a look at, and it turns out, that according to this page: An application must target Android O or higher and declare permission Manifest.permission.REQUEST_INSTALL_PACKAGES in order to use this API.

    In the example, there is a following code:
    Private Sub CheckInstallationRequirements As ResumableSub
    If File.ExternalWritable = False Then
    "Storage card not available. Make sure that your device is not connected in USB storage mode.""")
    Return False
    Else If phone.SdkVersion >= 26 And CanRequestPackageInstalls = False Then
    "Please allow me to install applications.""")
    Wait For Msgbox_Result(Result As Int)
    Dim in As Intent
    in.Initialize("android.settings.MANAGE_UNKNOWN_APP_SOURCES""package:" & Application.PackageName)
    Wait For Activity_Resume '<-- wait for Activity_Resume
            Dim b As Boolean = CanRequestPackageInstalls
    Log("CanRequestPackageInstalls " & b)
    Return b
    Else If CheckNonMarketAppsEnabled = False Then
    "Please enable installation of non-market applications." & CRLF & "Under Settings - Security - Unknown sources" _
    CRLF & "Or Settings - Applications - Unknown sources""")
    Return False
    Return True
    End If
    End Sub

    Private Sub CanRequestPackageInstalls As Boolean
    Dim ctxt As JavaObject
    Dim PackageManager As JavaObject = ctxt.RunMethod("getPackageManager"Null)
    Return PackageManager.RunMethod("canRequestPackageInstalls"Null)
    End Sub
    The code is looking at phone.SdkVersion >= 26, which is OS build version (which on my phone is Android 9), not a Target SDK (which is declared in the Manifest) as per android PackageManager documentation.
    And that was an error in this Sub.
    I had Target SDK set to be lower than 26, and that's why CanRequestPackageInstalls always returned false.
  2. Erel

    Erel Administrator Staff Member Licensed User

    Note that targetSdkVersion must be 26+ if you want to publish your app in Google Play.
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice