1

在我的一个应用程序中,我想检测用户是否安装了我的另一个应用程序。

此代码有效:

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

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

4

1 回答 1

1

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

于 2014-06-02T09:44:31.453 回答