Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 919
Mike Avatar asked Dec 30 '22 23:12

Mike


2 Answers

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.

like image 87
zhangxaochen Avatar answered Jan 08 '23 10:01

zhangxaochen


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

}

like image 33
Sujan Poudel Avatar answered Jan 08 '23 10:01

Sujan Poudel