Download an APK to App-Specific Directory (ASD) and install it without permissions

I have now made an update that should work with all Android versions. The given download link (GoogleDrive) downloads an almost empty APK (only one button, 3.2 MB). But you can also set your own link to your app (APK).

So check that on your devices with different Android versions, especially Android 10 and 11.

installAPK_K.apk (5.5 MB)

1 Like

See here:

Here is the new update.
It should now work with all Android versions (tested on Android 9, 10, 11).

Update v3:
de.bodymindpower.InstallAPK.aix (9.1 KB)


The InstallAPK extension for AI2 (→ AndroidX) is now also available and will soon be presented in the AI2 forum. I’ll share the link here later.


→ AI2 version of this extension (AndroidX):

Note : I forgot to mention that for devices with API < 19 ( KitKat ) you must ask for WRITE_EXTERNAL_STORAGE permission:

“On Android 4.4 (API level 19) or higher, your app doesn’t need to request any storage-related permissions to access app-specific directories within external storage.”

So if your minSdkVersion < 19 use something like this:

1 Like

I made a new update (→ Version 4) that now has a → DownloadCompleted event, among other things. In addition, the → /Download directory can be created in the ASD


and APKs or other files can be downloaded into it. Furthermore, → subfolders can also be created in the /Download directory of the ASD, e.g.:


or with subfolder:


Great job Anke. :+1:t2: :+1:t2: :+1:t2:

1 Like

Wow, nice you are continuously updating and making it better. Nice :blush:

1 Like

There should be blocks for when download started and if an error occurred while downloading. It would be very helpful

No error should occur as long as there is a network / internet connection. You could catch this by querying the isConnected event.

1 Like

And also what if the app is closed while downloading? does the downloading pause or continue?

Restart the download …

1 Like

please add progress event…

hey, i tried this but its not working. that file is already exist but it still downloading a new file with new name.
i dont know what is wrong

You should debug your blocks. The File component need needs a relative path for the File.Exists method.

See also here:

1 Like

… and here (post #4)

1 Like

Read it this way:
path (of) APK

1 Like

Thank you for this amazing extension .

1 Like

I did this and it worked, thank you soo much.

1 Like

Fine, but you can avoid an additional extension (TaifunFile):

1 Like