Android:如何验证包是否正版

时间:2014-06-02 09:33:31

标签: android google-play package-name

在我的某个应用中,我想检测用户是否安装了我的其他应用。

此代码有效:

    PackageManager pm = mAppContext.getPackageManager();
    try {
        pm.getPackageInfo("com.example.packagename", PackageManager.GET_ACTIVITIES);
        // do something
    } catch (PackageManager.NameNotFoundException e) {
        // nothing to do
    }

但我想知道如何验证用户是否真的从Google Play下载了该应用。我想可以安装一个包含相同包名的非正版软件包,对吧?

1 个答案:

答案 0 :(得分:1)

PackageManager 有一个 getInstallerPackageName 方法,对于给定的包名,它会为您提供安装程序的名称。对于预加载(除非它们不是像SamsungApps那样从其他'市场'安装)并且自安装的应用程序将返回null。对于源自Google Play的应用,您应该获得 com.android.vending 。而且我认为您无法安装两个具有在清单中声明的​​相同包名称的应用程序。