安卓检测手机是否安装微信,QQ,微博

相信现在很多应用都支持第三方登录,都会调用第三方接口进行授权,上周我接手的应用也一样,用到第三方登录,在一次偶然的时候,公司测试机器未安装QQ,我点击第三方授权登录一直没反应,我以为我代码问题,经过一番检测,反正是测试机未安装QQ,于是我就写了个工具类来检测机器是否安装这些应用。代码如下,仅供参考。

/**
 * Created by zhou on 2018/7/23.
 * 检测工具类  检测手机是否安装了这些应用
 * 在需要的时候掉对应的方法
 */

public class JudgeApplicationIsExistUtils {
    /**
     * 判断微信
     */
    public static boolean isWeixinAvilible(Context context) {
        final PackageManager packageManager = context.getPackageManager();// 获取packagemanager
        List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
        if (pinfo != null) {
            for (int i = 0; i < pinfo.size(); i++) {
                String pn = pinfo.get(i).packageName;
                if (pn.equals("com.tencent.mm")) {
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 判断qq是否可用
     */
    public static boolean isQQClientAvailable(Context context) {
        final PackageManager packageManager = context.getPackageManager();
        List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
        if (pinfo != null) {
            for (int i = 0; i < pinfo.size(); i++) {
                String pn = pinfo.get(i).packageName;
                if (pn.equals("com.tencent.mobileqq")) {
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 判断微博
     */
    public static boolean isWeiboIAvilible(Context context) {
        PackageManager pm;
        if ((pm = context.getApplicationContext().getPackageManager()) == null) {
            return false;
        }
        List<PackageInfo> packages = pm.getInstalledPackages(0);
        for (PackageInfo info : packages) {
            String name = info.packageName.toLowerCase(Locale.ENGLISH);
            if ("com.sina.weibo".equals(name)) {
                return true;
            }
        }
        return false;
    }
}

  以上三个方法是检测是否已经安装此应用,使用如下

   if (JudgeApplicationIsExistUtils.isQQClientAvailable(LoginActivity.this)){
//  已经安装做你要做的事情,没有则吐丝提示一下
                }else {
                  Toast.makeText(LoginActivity.this,"检测到您未安装或登录QQ!",Toast.LENGTH_SHORT).show();
                }

猜你喜欢

转载自blog.csdn.net/qq_34783437/article/details/81302838
今日推荐