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

时间:2018-04-03 05:19:02

标签: android google-play

我需要检查应用是由apk安装还是从谷歌播放。

我有从谷歌播放下载的 apk,此外,该应用程序可在谷歌播放中使用。我想对两个案例进行分类。

我已经在下面阅读了这个问题,但它是关于安装应用程序的应用程序商店,而且这不是我想要的。
How does android package manager know what to install from the market place web site?

是否有任何方法可以检查应用程序是否由apk安装,由app本身编程?任何帮助将不胜感激。

3 个答案:

答案 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;

}