百度大多给出的方法是:
/**
* 判断微信是否安装
*
*/
public static boolean isWeixinAvilible(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.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;
}
但是这样判断,有些机型会出现判断失误的情况,具体的机型忘记了,虽然几率很小但是仍会出现。如果你的APP中集成了腾讯和微信的SDK,那么就这样来判断,这些是他们的SDK自己提供的检测方法,应该不会出现大的问题,还在观察中!
/** * 判断qq是否安装 * * * */ public static boolean isQQClientAvailable(Context context) { return SystemUtils.checkMobileQQ(context);//腾讯的SDK所提供的方法 } /** * 判断微信是否安装 * * * */ public static boolean isWeixinAvilible(Context context) { IWXAPI api= WXAPIFactory.createWXAPI(context, AppConstant.WX_APP_ID);
}return api.isWXAppInstalled();//微信SDK所提供的方法