Android 判断应用是否安装

来源:互联网 发布:js 数组取最后一个 编辑:程序博客网 时间:2024/05/18 02:25

方法一

使用抛出异常的方式判断,通过包名获取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;}

注意

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

原创粉丝点击