如何检查应用程序是否由apk安装

Sta*_*Kou 4 android google-play

我需要检查该应用程序是通过 apk 还是从 google play 安装的。

我有一个从 google play 下载的 apk,而且该应用程序也可以在 google play 上使用。我想分两种情况。

我已经在下面读到过这个问题,但它是关于应用程序是由哪个应用程序商店安装的,这不是我想要的。
Android 包管理器如何知道要从市场网站安装什么?

有没有什么方法可以通过应用程序本身以编程方式检查应用程序是否由 apk 安装?任何帮助将不胜感激。

Anu*_*rao 6

首先,找到安装程序包名称,例如:

String sourceId = getPackageManager()
    .getInstallerPackageName(getPackageName());
Run Code Online (Sandbox Code Playgroud)

然后检查sourceId变量的值,例如:

  • 如果应用程序是从 Google Play 商店安装的,则该值应为:
com.android.vending
Run Code Online (Sandbox Code Playgroud)
  • 如果从 Google Play 商店安装,然后解压APK并再次安装:
com.google.android.packageinstaller
Run Code Online (Sandbox Code Playgroud)
  • 如果从Google play store下载发布,App发布列表:
null
Run Code Online (Sandbox Code Playgroud)