您的位置:首页 > 移动开发 > 微信开发

ShareSDK社会化分享判断是否安装微信、QQ等客户端

2017-06-04 22:20 495 查看

问题由来:

在使用ShareSDK的社会化分享功能的时候,有时候我们需要判断手机是否安装了对应的APP客户端;不过ShareSDK并没有提供相关的方法,在回调函数当中也没有相关的错误信息提示,因此需要我们自己去做判断。

代码:

/**
* 判断是否安装了微博
* @param context
* @return
*/
public static boolean isWeiboInstalled(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.toLowerCase(Locale.ENGLISH);
if (pn.equals("com.sina.weibo")) {
return true;
}
}
}
return false;
}

/**
* 判断是否安装了微信
* @param context
* @return
*/
public static boolean isWeixinInstalled(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.toLowerCase(Locale.ENGLISH);
if (pn.equals("com.tencent.mm")) {
return true;
}
}
}
return false;
}

/**
* 判断是否安装了QQ
* @param context
* @return
*/
public static boolean isQQClientInstalled(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.toLowerCase(Locale.ENGLISH);
if (pn.equals("com.tencent.mobileqq")) {
return true;
}
}
}
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息