Install an APK after downloading to ASD - works on all Android versions

I made an update and added some methods for creating subdirectories in the ASD as suggested by @Taifun:

Version 2 (Oct 28, 2020)
de.bodymindpower.InstallAPK.aix (9.6 KB)

You can now create the /Download dir in the ASD:


and also subfolders in this dir, e.g.:




(added to FAQ)

sorry for my beginner question, what's the advantage of installing an APK to ASD ?

See in the description above:

I put my question wrong, why to make an app for installing another app ?

There can be a variety of reasons.
Maybe you want to ask a user who was looking for it:

As Anke wrote there can be many reasons.
For example, in my current project i don't use playstore because of lead time and it is a private app, so i use the extension for self install the newest version from our own server. Of course it can be download and install manually, but not every user is software- and phone-guru so i make it easier for them.

I only wish it would be possible to avoid click on isntall too.

thank you

1 Like


Dear Anke,
An error occurred such as image1
Apk (MIT AI) is run on an android version such as image2

Show your blocks.
And try this test APK:

  • Does it work on your device?
  • Which device and Android version do you have?

I've found the reason why the installAPK method doesn't work on devices with Android > 7. This line is missing in the Manifest of the Companion APK:


If I add this line in the Manifest, it works fine also on Android 8, 9, 10, 11.
Maybe you or @ewpatton can tell more about this.

1 Like

This shouldn't be needed on Android 5 and higher. Prior to Android 5, MultiDex was needed for larger apps that ended up with their classes.dex file split across multiple files. Starting with Android 5, Android converts the dex files to oat files to work with the new Android Runtime (ART) on install so multidex is no longer needed. If you increase the minSDK of the app to 21 you shouldn't need the multidex declaration.

When I create an APK with my extension, this line is created in the Mainifest:

<application android: debuggable = "false" android: icon = "@ mipmap / ic_launcher" android: label = "installAPK AI2" android: name = ""

and everything works as it should (on all Android versions) ...

Dear Anke,

installAPK_AI2.apk runs normally (download + install) = SUCCESSFUL

Is the version of de.bodymindpower.InstallAPK.aix that I am using compatible (the version shown in the picture)?


Yes, but I still need to add a "Download.Completed" event, as @Taifun said:

You have to wait for the download to complete:



@Boike_Rimba As @Taifun said:

"the method DownloadFileToASD is an asynchronous method and usually there should be an event to indicate, that the download has been finished..."

So remove the close application block and wait until the download has been finished.
I try to add the Download.Completed even soon (when I have more time).


@Boike_Rimba I added the Download.Completed event (→ Version 3 of the extension).

Example blocks

1 Like

Dear Anke,

My installation process was successful.
Thank you for the instructions & the newest extension.


1 Like

When it comes to downloading the APK from google drive, you can download and install applications using ActivityStarter and it does not require any permissions on Android 9.