1. 程式人生 > >安卓檢測手機是否安裝微信,QQ,微博

安卓檢測手機是否安裝微信,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();
                }