How to know if a particular application is installed or not on the device?

后端 未结 4 1817
我寻月下人不归
我寻月下人不归 2021-01-29 00:56

I want to check whether an app is installed on the device or not. I am using code below :

PackageManager pm = context.getPackageManager();
        List

        
相关标签:
4条回答
  • 2021-01-29 01:13

    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
    
    0 讨论(0)
  • 2021-01-29 01:21

    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?

    0 讨论(0)
  • 2021-01-29 01:25

    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");
    }
    
    0 讨论(0)
  • 2021-01-29 01:25

    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.

    0 讨论(0)
提交回复
热议问题