编程上如何检测安卓设备是否有Google Play?

7

目前有一些设备没有安装Google Play(如华为设备),有没有方法可以通过程序检查设备是否安装了Google Play?我想使用应用内更新功能: https://developer.android.com/guide/playcore/in-app-updates 并且先检查设备是否安装了Google Play商店。

目前我尝试使用Uri.parse("market://details?id=" + appPackageName),但需要先启动活动来确认其存在,有更好的方式吗?

2个回答

8

您可以使用以下代码来检查安卓设备是否有Google Play:

boolean flag = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this) == com.google.android.gms.common.ConnectionResult.SUCCESS

如果flag == true,那么设备启用了GMS。
如果flag == false,那么设备禁用了GMS。

这段代码是否会阻塞,需要另一个线程还是可以在主线程上使用? - Abdulmalek Dery
2
@AbdulmalekDery 可以在主线程上使用,尽管最佳实践是避免在主线程上调用任何特别不需要在主线程上运行的内容。 - m0skit0

5

您可以检查包com.android.vending是否存在

public static boolean isPackageInstalled(String packageName, PackageManager packageManager) {
    try {
        return packageManager.getApplicationInfo(packageName, 0).enabled;
    }
    catch (PackageManager.NameNotFoundException e) {
        return false;
    }
}

在您的活动中,您可以这样做:


if(isPackageInstalled("com.android.vending", getPackageManager())){ 

   // play store is installed

}else{ 

   // play store is not installed

}


if和else有什么不同? - Nanda Z

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接