I want to check whether an app is installed on the device or not. I am using code below :
PackageManager pm = context.getPackageManager();
List
Use Below Code:
public boolean isAppInstalled(String package_name, String app_name)
{
try {
PackageManager pm = getPackageManager();
PackageInfo info = pm.getPackageInfo("" + package_name, PackageManager.GET_META_DATA);
return true;
}
catch (PackageManager.NameNotFoundException e) {
Toast.makeText(getApplicationContext(), "Your device has not installed " + app_name, Toast.LENGTH_SHORT)
.show();
return false;
}
}
Call the method like:
isAppInstalled("com.whatsapp", "Whatsapp"); // it will return true if your device is having whatsApp.
isAppInstalled("com.randomname", "anyname"); //it will return false
just check using application id of particular app for example check
getPackageManager().getPackageInfo("com.facebook.katana", 0);
return true;
else false
check this answer it may helpful to you. How to check programmatically if an application is installed or not in Android?
like whatsapp
shareImage("com.whatsapp", "Whatsapp");
call
public void shareImage(String pkgname, String appname) {
String path = null;
try {
path = MediaStore.Images.Media.insertImage(getContentResolver(),
arrImagePath.get(slidePager.getCurrentItem()), "Title", null);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
Uri uri = Uri.parse(path);
Intent share = new Intent(Intent.ACTION_SEND);
share.setPackage(pkgname);
share.putExtra(Intent.EXTRA_STREAM, uri);
share.setType("image/*");
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(share, "Share image File");
}
I found the answer here
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> pkgAppsList =
context.getPackageManager().queryIntentActivities( mainIntent, 0);
for (ResolveInfo resolveInfo : pkgAppsList) {
Log.d(TAG, "__<>"+resolveInfo.activityInfo.packageName);
if (resolveInfo.activityInfo.packageName != null
&& resolveInfo.activityInfo.packageName.equals(uri)) {
return true;
}
}
return false;
This worked for me perfectly.