如何检测谷歌应用是否安装在android设备上

如何检测谷歌应用是否安装在android设备上,android,google-play,google-play-services,Android,Google Play,Google Play Services,我必须通过编程检测谷歌应用程序和谷歌服务是否安装在设备上 第一种解决方案是使用packagemanager: private static final String GooglePlayStorePackageNameOld = "com.google.market"; private static final String GooglePlayStorePackageNameNew = "com.google.vending"; void someMethod() { package

我必须通过编程检测谷歌应用程序和谷歌服务是否安装在设备上

第一种解决方案是使用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;
        }
    }
}
private静态最终字符串GooglePlayStorePackageNameOld=“com.google.market”;
私有静态最终字符串GooglePlayStorePackageNameNew=“com.google.vending”;
void方法(){
packageManager=getApplication().getPackageManager();
List packages=packageManager.getInstalledPackages(packageManager.GET\u卸载的\u软件包);
用于(PackageInfo-PackageInfo:Package){
if(packageInfo.packageName.equals(GooglePlayStorePackageNameOld)||
packageInfo.packageName.equals(谷歌PlayStorePackagenamenew)){
googlePlayStoreInstalled=true;
打破
}
}
}

但是还有更可靠的方法吗?

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

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;
PackageManager pm=getPackageManager();
意向市场=新意向(Intent.ACTION\u视图,Uri.parse(“market://details?id=dummy"));
列表=pm.QueryInputActivities(市场,0);
if(list!=null&&list.size()>0)
mMarketInstalled=true;
其他的
mMarketInstalled=false;

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

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

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;
PackageManager pm=getPackageManager();
意向市场=新意向(Intent.ACTION\u视图,Uri.parse(“market://details?id=dummy"));
列表=pm.QueryInputActivities(市场,0);
if(list!=null&&list.size()>0)
mMarketInstalled=true;
其他的
mMarketInstalled=false;
您觉得这个解决方案怎么样?

查看此链接,希望它能有所帮助!!!!查看此链接,希望对您有所帮助!!!!