我需要检查应用是由apk安装还是从谷歌播放。
我有从谷歌播放下载的 apk,此外,该应用程序可在谷歌播放中使用。我想对两个案例进行分类。
我已经在下面阅读了这个问题,但它是关于安装应用程序的应用程序商店,而且这不是我想要的。
How does android package manager know what to install from the market place web site?
是否有任何方法可以检查应用程序是否由apk安装,由app本身编程?任何帮助将不胜感激。
答案 0 :(得分:2)
String strCheck = getPackageManager()
.getInstallerPackageName(getPackageName());
如果应用程序从Play商店安装,您将在strCheck中获得价值。
安装程序包名称是
google play store:
com.android.vending
从谷歌播放商店安装,并解压缩apk,再次安装:
com.google.android.packageinstaller
从google play store发布,App发布列表:
空
答案 1 :(得分:2)
试试这个
PackageManager pm = getPackageManager();
if(pm.getInstallerPackageName(getPackageName()).equals("com.android.vending"){
//App is from google play
//do something
}
包含未知来源的应用将返回空字符串
答案 2 :(得分:0)
我使用下面的代码检查,如果从商店下载apk或侧载:
private boolean isStoreVersion(Context context) {
boolean isStoreVersion= false;
try {
String installer = context.getPackageManager()
.getInstallerPackageName(context.getPackageName());
isStoreVersion= !TextUtils.isEmpty(installer);
} catch (Throwable e) {
e.printStackTrace();
}
return isStoreVersion;
}