微信分享时校验是否安装微信客户端,部分机型报JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 124)
验证方法为
try { mContext.getPackageManager().getPackageInfo("com.tencent.mm", PackageManager.GET_ACTIVITIES); return true; } catch (Exception e) { return false; }
猜想:获取到的数据包过大
修正方法为 双向验证
if (api.isWXAppInstalled() && api.isWXAppSupportAPI()) { return true; } else { final PackageManager packageManager = mContext.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.equalsIgnoreCase("com.tencent.mm")) { return true; } } } return false; }