在我的某个应用中,我想检测用户是否安装了我的其他应用。
此代码有效:
PackageManager pm = mAppContext.getPackageManager();
try {
pm.getPackageInfo("com.example.packagename", PackageManager.GET_ACTIVITIES);
// do something
} catch (PackageManager.NameNotFoundException e) {
// nothing to do
}
但我想知道如何验证用户是否真的从Google Play下载了该应用。我想可以安装一个包含相同包名的非正版软件包,对吧?
答案 0 :(得分:1)
PackageManager 有一个 getInstallerPackageName 方法,对于给定的包名,它会为您提供安装程序的名称。对于预加载(除非它们不是像SamsungApps那样从其他'市场'安装)并且自安装的应用程序将返回null。对于源自Google Play的应用,您应该获得 com.android.vending 。而且我认为您无法安装两个具有在清单中声明的相同包名称的应用程序。