以编程方式检查 android 设备是否有 Google Play?

Mik*_*ike 4 android google-play huawei-mobile-services

目前有些设备没有Google Play(华为设备),如果设备没有,有没有办法以编程方式检查?我想使用应用内更新功能:https : //developer.android.com/guide/playcore/in-app-updates并首先检查设备是否有 Google PlayStore。

到目前为止我已经尝试过:使用Uri.parse("market://details?id=" + appPackageName)但您需要先启动活动以确认它存在?我想知道是否有更好的方法来做到这一点。

Suj*_*del 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以在你的活动中这样做


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

   // play store is installed

}else{ 

   // play store is not installed

}

Run Code Online (Sandbox Code Playgroud)


shi*_*ley 5

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

boolean flag = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this) == com.google.android.gms.common.ConnectionResult.SUCCESS
Run Code Online (Sandbox Code Playgroud)

如果flag == true,则在设备中启用 GMS。

如果flag == false,则在设备中禁用 GMS。

  • @AbdulmalekDery 可以在主线程上使用,尽管最佳实践是避免在主线程上调用任何不需要在主线程上运行的内容。 (2认同)