Android(安卓)判断应用是否安装
16lz
2021-01-26
方法一
使用抛出异常的方式判断,通过包名获取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 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上下文对象的理解
- [android]startActivityForResult方法简介
- Android(安卓)序列化 Parcelable VS Serializable
- 【Android】之【对话框(Dialog)大全】
- Android获取可执行应用的列表并执行相关应用
- Android(安卓)Service的绑定过程
- Android杀死正在运行的进程
- Android(安卓)Values文件作用及使用方法
- Android应用程序获取system权限