Android 判断应用是否安装

方法一

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

注意

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值