开发中分享操作往往经常遇到,而且还是一些比较大型一定的平台,如微信,QQ,微博等。写这篇博客主要是把微信的的分享和相关操作表达一下,分享可以包含:文字,视频,音乐,图片等分享。

分享可以有 分享给好友,群,朋友圈等。

效果如下图:(注意:功能根据自己的需要选择就可以了)

准备工作:

微信开放平台创建应用,操作步骤请看博客:Android之微信开放平台创建应用

成功之后得到AppId,放入项目中。

public class Constants {
// APP_ID 替换为你的应用从官方网站申请到的合法appId==
public static final String APP_ID = "wx1b73fd7b49ffa027"; public static class ShowMsgActivity {
public static final String STitle = "showmsg_title";
public static final String SMessage = "showmsg_message";
public static final String BAThumbData = "showmsg_thumb_data";
}
public class AppRegister extends BroadcastReceiver {

    @Override
public void onReceive(Context context, Intent intent) {
final IWXAPI api = WXAPIFactory.createWXAPI(context, null); // 将该app注册到微信
api.registerApp(Constants.APP_ID);
}
}

文本分享代码:

// 初始化一个WXTextObject对象
WXTextObject textObj = new WXTextObject();
textObj.text = text;
// 用WXTextObject对象初始化一个WXMediaMessage对象
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = textObj;
// 发送文本类型的消息时,title字段不起作用
msg.title = "Will be ignored";
msg.description = text; // 构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("text"); // transaction字段用于唯一标识一个请求 req.message = msg;
/**
* 判断是否是朋友圈
*/
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; // 调用api接口发送数据到微信
api.sendReq(req);

图片分享代码:(包含 本地图片,SD卡图片,网络图片)

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.send_img);
WXImageObject imgObj = new WXImageObject(bmp);
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgObj; Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
bmp.recycle();
msg.thumbData = Util.bmpToByteArray(thumbBmp, true); // 设置所图; SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("img");
req.message = msg;
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);

音乐分享代码

WXMusicObject music = new WXMusicObject();
music.musicUrl="http://staff2.ustc.edu.cn/~wdw/softdown/index.asp/0042515_05.ANDY.mp3";
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = music;
msg.title = "标题";
msg.description = "描述信息"; Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("music");
req.message = msg;
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);

视频分享代码

WXVideoObject video = new WXVideoObject();
video.videoUrl = "url....mp4";//mp4视频路径
WXMediaMessage msg = new WXMediaMessage(video);
msg.title = "标题";
msg.description = "描述信息";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb); msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("video"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req);

网页分享代码:

WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = "http://www.baidu.com";
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = "标题";
msg.description = "描述信息";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");
req.message = msg;
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);

等等。

代码下载

github: https://github.com/DickyQie/android-third-party/tree/weixin-share

最新文章

  1. 谷歌chrome浏览器www.tradeadexchange.com广告弹窗跳转劫持病毒
  2. html中meta的介绍
  3. 【bzoj1601】[Usaco2008 Oct]灌水(MST)
  4. 安装完eos出的问题
  5. PHP flush sleep 输出缓存控制详解
  6. SQL Server技术问题之自定义函数优缺点
  7. Aptana Studio 3的汉化
  8. debug实战:进程Hang+High CPU
  9. mysql 清空表 Truncate及delete区别
  10. Git使用汇总
  11. Java 线程基本知识
  12. 错误代码: 1054 Unknown column 't.createUsrId' in 'group statement'
  13. 使用make
  14. Spring Boot: Yaml配置文件 以及 @ConfigurationProperties属性获取
  15. ubuntu安装docker-ce
  16. Java面试题复习笔记(Web方向)
  17. Linux的文件系统
  18. Kubernetes理论基础
  19. caffe训练模型中断的解决办法(利用solverstate)
  20. ubuntu16.10安装搜狗输入法

热门文章

  1. instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例 , 返回true或者false
  2. Python开发【Django】:图片验证码、KindEditor
  3. 评论抓取:Python爬取微信在APPStore上的评论内容及星级
  4. 《玩转Spring》第二章 BeanPostProcessor扩展
  5. xutil3 post 和 get请求
  6. Linux下如何执行Shell脚本
  7. NFS-网络文件共享服务
  8. WordPress配置
  9. activiti整合spring
  10. python pytz 结合时区的日期操作