Home » Android » Is there an Android build flag to check for APK versus Instant App version of an App

Is there an Android build flag to check for APK versus Instant App version of an App

Posted by: admin June 15, 2020 Leave a comment

Questions:

Just like BuildConfig.FLAVOR and BuildConfig.DEBUG is there a build flag to check at runtime for the APK version or the Instant App version of an Android application ?

Or is there another way to get the information ?

How to&Answers:

Add to the module build.gradle the dependency : implementation 'com.google.android.instantapps:instantapps:1.0.0' then you will be able to use the function InstantApps.isInstantApp(this).

Please note that you must use Maven Google by changing your repositories in the project build.gradle :

buildscript {
    repositories {
        maven {
            url 'https://maven.google.com'
        }
        jcenter()
    }
    ...
}

allprojects {
    repositories {
        maven {
            url 'https://maven.google.com'
        }
        jcenter()
    }
}

Android Instant Apps API reference

Answer:

Easiest way is to use PackageManager.isInstantApp() :

https://developers.google.com/android/reference/com/google/android/gms/instantapps/PackageManagerCompat.html#isInstantApp()

Or, a regular (non-appcompat version) https://developer.android.com/reference/android/content/pm/PackageManager#isInstantApp()

Also has an override which accepts package name as a string, which allows to check other apps, if permissions allow.

Answer:

Yes, You can determine whether the current app is Installed App or Instant app.First of all add the dependency in your feature module build.gradle

api "com.google.android.instantapps:instantapps:1.0.0"

Match you project level build.gradle with this

buildscript {
repositories {
    maven { url 'https://maven.google.com' }
    jcenter()
}...
}

allprojects {
repositories {
    maven { url 'https://maven.google.com' }
    jcenter()
}
}

Finally at runtime you may write

if (InstantApps.isInstantApp(this)) {
        // Do something like, show install button
    } else {
        // Do something like, hide install button
    }