Mike
Mike

Reputation: 1343

Programmatically check if android device has Google Play?

Currently there are some devices that doesn't have Google Play (Huawei Devices), is there a way for me to check programmatically if the device doesn't have one? I wanted to use the in-app-update feature: https://developer.android.com/guide/playcore/in-app-updates and check if the device has a Google PlayStore first.

What I have tried so far: using Uri.parse("market://details?id=" + appPackageName) but you need to start the activity first to confirm it exists? I'd like to know if there are better ways to do it.

Upvotes: 7

Views: 4801

Answers (2)

Sujan Poudel
Sujan Poudel

Reputation: 853

You can check if the package com.android.vending exists or not

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

And you can do like this in your activity


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

   // play store is installed

}else{ 

   // play store is not installed

}

Upvotes: 5

zhangxaochen
zhangxaochen

Reputation: 33997

You can use the following code to check whether the android device has Google Play:

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

If flag == true, then GMS is enable in device.

If flag == false, then GMS is disable in device.

Upvotes: 9

Related Questions