How can I find if a particular package exists on my Android device?
Call any of the below method with the package name.
import android.content.pm.PackageManager;// ... public boolean isPackageExisted(String targetPackage){ List<ApplicationInfo> packages; PackageManager pm; pm = getPackageManager(); packages = pm.getInstalledApplications(0); for (ApplicationInfo packageInfo : packages) { if(packageInfo.packageName.equals(targetPackage)) return true; } return false; }
import android.content.pm.PackageManager; public boolean isPackageExisted(String targetPackage){ PackageManager pm=getPackageManager(); try { PackageInfo info=pm.getPackageInfo(targetPackage,PackageManager.GET_META_DATA); } catch (PackageManager.NameNotFoundException e) { return false; } return true; }
Without using a try-catch block or iterating through a bunch of packages:
public static boolean isPackageInstalled(Context context, String packageName) { final PackageManager packageManager = context.getPackageManager(); Intent intent = packageManager.getLaunchIntentForPackage(packageName); if (intent == null) { return false; } List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); return list.size() > 0;}
Kotlin
fun isPackageExist(context: Context, target: String): Boolean { return context.packageManager.getInstalledApplications(0).find { info -> info.packageName == target } != null}