1

我必须以编程方式检测谷歌应用程序和谷歌服务是否安装在设备上。

第一个解决方案是使用 packagemanager :

private static final String GooglePlayStorePackageNameOld = "com.google.market";
private static final String GooglePlayStorePackageNameNew = "com.google.vending";

void someMethod() {
    packageManager = getApplication().getPackageManager();
    List<PackageInfo> packages = packageManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
    for (PackageInfo packageInfo : packages) {
        if (packageInfo.packageName.equals(GooglePlayStorePackageNameOld) ||
            packageInfo.packageName.equals(GooglePlayStorePackageNameNew)) {
            googlePlayStoreInstalled = true;
            break;
        }
    }
}

但是有什么更可靠的吗?

4

1 回答 1

1

我找到了另一种测试市场意图结果的方法

PackageManager pm = getPackageManager();
Intent market = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=dummy"));
List<ResolveInfo> list = pm.queryIntentActivities(market, 0);
if (list != null && list.size() > 0)
    mMarketInstalled = true;
else
    mMarketInstalled = false;

你觉得这个解决方案怎么样?

于 2013-02-13T09:53:02.020 回答