The PackageManager class supplies the getInstallerPackageName method that will tell you the package name of whatever installed the package you specify. Side-loaded apps will not contain a value.

The latest version of the Amazon store finally sets PackageManager.getInstallerPackageName() to "com.amazon.venezia" as well to contrast with Google Play's "com.android.vending".

Source: How to know an application is installed from google play or side-load? For an Example: getInstallerPackageName returns null


Use getInstallerPackageName.

This stores the packageName of what installed the application.

  • Google Play: "com.android.vending"
  • Amazon Appstore: "com.amazon.venezia"

At present (16/01/2022) code:

val s = applicationContext.getPackageManager().getInstallerPackageName(applicationContext.getPackageName())

works fine for Android 11 in GooglePlay, and get "com.android.vending".