安卓,调用系统方法分享到微信
Posted Jason Zhang~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓,调用系统方法分享到微信相关的知识,希望对你有一定的参考价值。
项目中有需求,要能一次性分享多张图片给微信好友,还要能带文字和多张图片跳转到微信的朋友圈的发布界面(这让我想到了微商最想要的微信一键转发功能)。如下图。
而分享的SDK,貌似做不到这样。但是安卓系统自带的方法能做到。实现功能后,整理封装如下。
public class SystemShareUtils
// 微信朋友圈发送界面
public static final String NAME_ACTIVITY_WECHAT_CIRCLE_PUBLISH = "com.tencent.mm.ui.tools.ShareToTimeLineUI";
// 微信好友发送界面
public static final String NAME_ACTIVITY_WECHAT_FRIEND = "com.tencent.mm.ui.tools.ShareImgUI";
/**
* 分享
* @param context
* @param activityName 分享类别。
* NAME_ACTIVITY_WECHAT_CIRCLE_PUBLISH表示朋友圈发布界面;NAME_ACTIVITY_WECHAT_FRIEND表示发送给好友。
* @param text 文字内容,只对朋友圈有效
* @param files 本地图片全路径列表
*/
public static void shareTextAndPicToWechat(Context context, String activityName, String text, List<String> files)
String packageName = "com.tencent.mm"; // 微信包名
if (isWeixinAvilible(context))
Intent intent = new Intent();
ComponentName comp = new ComponentName(packageName, activityName);
intent.setComponent(comp);
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.setType("image/*");
ArrayList<Uri> imageUris = new ArrayList<>();
if (null != files)
for (String f : files)
// 7.0及以上需要使用MediaStore.Images.Media.insertImage()转化一下uri?
// 测试7.0 7.1 未发现这样有bug
imageUris.add(Uri.fromFile(new File(f)));
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
intent.putExtra("Kdescription", text); // 作用于发朋友圈,对好友不会有影响
context.startActivity(intent);
else
ToastUtils.showToast("请先安装微信APP");
// 判断手机内是否安装了微信APP
private static boolean isWeixinAvilible(Context context)
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;
暂时测试未发现问题。
以上是关于安卓,调用系统方法分享到微信的主要内容,如果未能解决你的问题,请参考以下文章
关于JS交互--调用h5页面,点击页面的按钮,分享到微信朋友圈,好友