方法一

使用抛出异常的方式判断,通过包名获取app的信息,当app不存在时,会抛出NameNotFoundException 异常,我们通过对异常的捕获,从而判断是否安装了该应用,代码如下:

private boolean checkAppInstalled(Context context,String pkgName) {if (pkgName== null || pkgName.isEmpty()) {return false}PackageInfo packageInfo;        try {packageInfo = context.getPackageManager().getPackageInfo(pkgName, 0);} catch (NameNotFoundException e) {packageInfo = null;e.printStackTrace();}if(packageInfo == null) {return false;} else {return true;}
}

方法二

获取已经安装应用的所有包名,然后通过对比包名,从而判断应用是否安装,代码如下:

private boolean checkAppInstalled( Context context, String pkgName) {if (pkgName== null || pkgName.isEmpty()) {return false}final PackageManager packageManager = context.getPackageManager();// 获取所有已安装程序的包信息List<PackageInfo> info = packageManager.getInstalledPackages(0);if(info == null || info.isEmpty())return false;for ( int i = 0; i < info.size(); i++ ) {if(pkgName.equals(info.get(i).packageName)) {return true;}}return false;
}

注意

以上的两种方法都可以判断手机中是否安装了某个应用,但还是通过测试发现使用方法一的时候反应速度会比较慢,因为抛出异常需要一定的时间,所以在判断手机中是否安装了某个应用,建议使用方法二。但是当手机中应用过多时,方法二的速度也会相应的变慢,但是在测试过程中整体的速度相对于方法一还是快一些。

Android 判断应用是否安装相关推荐

  1. android判断是否已经安装成功,android 判断应用程序是否已安装

    1.判断是否安装 /* * check the app is installed */ private boolean isAppInstalled(Context context,String pa ...

  2. Android 判断手机是否安装QQ或者微信

    //判断是否安装Qq public static boolean isQQClientAvailable(Context context) {final PackageManager packageM ...

  3. android 判断安装微信,Android开发中判断手机是否安装了QQ或者微信

    下面一段代码给大家分享了android中判断手机是否安装了qq或者微信,代码简单易懂,非常不错,具有参考借鉴价值,需要的的朋友参考下吧 public static boolean isWeixinAv ...

  4. 一起Talk Android吧(第五百四十六回:如何判断手机是否安装GooglePlay)

    文章目录 概念介绍 实现方法 通过包名 通过API 经验总结 各位看官们大家好,上一回中咱们说的例子是"如何实现流水动画",本章回中介绍的例子是" 如何判断手机是否安装G ...

  5. Android 开发判断用户是否安装微信和QQ并跳转过去

    /*** 判断 用户是否安装微信客户端*/public static boolean isWeixinAvilible(Context context) {final PackageManager p ...

  6. Android判断应用是否拥有某种权限

    Android判断应用是否拥有某种权限 最近发现很多很多分原生Android系统会修改某些权限,甚至还有可能在安装过程中从APP的包中可能删除某些权限,导致APP无法正常运行.所以我们在使用某些特殊权 ...

  7. Android中对已安装应用的管理实现

    获取.管理手机中已安装的所有应用信息 1.创建应用的实体类AppInfo,属性有应用的名称.包名.图标.第一次安装时间和版本名称 public class AppInfo {private Strin ...

  8. html5安卓机判断刘海屏,Android判断是否为刘海屏

    主要总结主流品牌小米.华为.oppo.vivo的刘海屏判断.在某些特殊页面需要适配刘海屏时,可以用以下方法判断. 或者判断屏幕比例是否大于2. /** * 小米刘海屏判断. */ public sta ...

  9. Android实现APK智能安装且安装后自启动,亲测有用!

    一.智能安装 (一)什么是智能安装? 最近因为公司需求需要实现智能安装,apk从服务器上下载后,自动打开安装,安装完后自己打开,难了我好长时间才实现的,记录一下. 首先实现有两种方式: 静默安装: 在 ...

最新文章

  1. R语言KMeans聚类模型示例
  2. 刚安装的python如何使用-Python requests的安装与简单运用
  3. 学习笔记Hadoop(十二)—— Hadoop基础操作(4)—— YARN资源管理与调度策略
  4. python 提高文件查询效率_Python 大量小文件存储提高效率的简单示例
  5. html js脚本限制 正则,简单谈谈JS中的正则表达式
  6. Linux 设备管理和进程管理
  7. java输入正确的信息_判断用户输入的信息是否正确
  8. 在中国,真正达到月收入1万以上的有多少
  9. c语言小数表达式运算课程设计,数据结构课程设计表达式计算.doc
  10. python3+arcface2.0 离线人脸识别 demo
  11. 什么是GaussDB
  12. mysql login_HOW to login MYSQL, Help, and Select Database
  13. Visual Studio 2017 配置AnkhSVN
  14. SD卡--摄像头中扩容卡原理及检测机制
  15. 杏子语录(2019年07月)
  16. 卷积神经网路之感受野(receptive field)的理解
  17. ChatGPT 如何获取API Key
  18. 计算机硬件性能测试过程,鲁大师怎么检测电脑硬件性能 鲁大师测试硬件方法...
  19. pynq 环境搭建_PYNQ系列学习(一)——Pynq开发环境配置
  20. 详解冬奥冠军背后的AI黑科技

热门文章

  1. 如何在HTML文档中调用Python程序?
  2. 原生js写篮球的运动轨迹!
  3. 推荐一个如何成为PPT高手的博客
  4. 解释VR的时间扭曲(time-warp)
  5. 将阿拉伯数字转换为中文数字: 123 -> 一二三
  6. simulink中gnd无法连线问题
  7. 前端工程师必备九大网站
  8. php网站动态设计代码,玩转PHP动态网页设计
  9. Django的form组件提交时错误不显示或无法提交
  10. 再次做consruct2游戏