- 添加微信分享依赖
compile ‘com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.0.2’
2.通过WXAPIFactory打开微信客户端 首先应用审核没有通过也可以打开微信
private static final String app_id = “”;//申请应用分配的appid
private IWXAPI api;//第三方app和微信通信的openapi接口
api = WXAPIFactory.createWXAPI(this, app_id, true);
iwxapi.registerApp(app_Id);//将app_id注册到微信中
boolean b = api.openWXApp();//打开微信app
//微信开发资源中
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317340&token=&lang=zh_CN
3.发送文本信息
//创建一个用于封装待分享文本的TextObject对象
WXTextObject textObject = new WXTextObject();
textObject.text = “abc”;
//创建WXMediaMessage 用于传输 android客户端向微信客户端发送数据
WXMediaMessage wxMediaMessage = new WXMediaMessage();
wxMediaMessage.mediaObject = textObject;
//创建一个用于请求微信客户端的SendMessageToWX对象
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.message = wxMediaMessage;//发送的消息
req.transaction = getTransaction(“text”);//用于唯一标识一个请求
req.scene = SendMessageToWX.Req.WXSceneSession;//发送给朋友
req.scene = SendMessageToWX.Req.WXSceneTimeline;//发送给朋友圈
// 发送给微信客户端
boolean b = iwxapi.sendReq(req);//发送是否成功
3.2 根据类型返回唯一标识
public String gettTransaction(String type) {
return type == null ? String.valueOf(System.currentTimeMillis()) : String.valueOf(System.currentTimeMillis()) + type;
}
4.发送二进制图片
//获取二进制图像的bitmap对象
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
//创建WXImageObject对象 并包装bitmap
WXImageObject wxImageObject = new WXImageObject(bitmap);
//创建WXMediaMessage对象 并包装WXImageObject对象
WXMediaMessage wxMediaMessage = new WXMediaMessage();
wxMediaMessage.mediaObject = wxImageObject;
//压缩图像
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 120, 150, true);
//释放图像所占用内存资源
bitmap.recycle();
wxMediaMessage.thumbData = bitmapToByte(scaledBitmap, true);//设置缩略图
SendMessageToWX.Req req=new SendMessageToWX.Req();
req.transaction=gettTransaction(“img”);//设置发送标识
req.message=wxMediaMessage;
req.scene=SendMessageToWX.Req.WXSceneSession;//朋友
req.scene=SendMessageToWX.Req.WXSceneTimeline;//朋友圈
req.scene=SendMessageToWX.Req.WXSceneFavorite;//收藏
iwxapi.sendReq(req);
//将bitmap转换成二进制格式数组
public byte[] bitmapToByte(Bitmap bitmap, boolean isNeedRecycle) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);//压缩成100%的png格式
if (isNeedRecycle) {
bitmap.recycle();
}
byte[] result = bos.toByteArray();
try {
bos.close();
} catch (IOException e) {
e.printStackTrace }
}
return
result;
}
5.分享本地图片到微信朋友圈
和上面的基本上一样,只是第一步中Bitmap不是通过BitmapFactroy获得,而是通过 wxImageObject.setImagePath(path);获得的这个路径就是一个sd卡中存放图片文件的路径 可以先通过File file=new File(path);来判断一下文件是否存在
6.分享图片通过url 只是获取图片需要通过流读取 要通过wxImageObject
BitmapFactory.decodeStream(new URL(“”).openStream()); 7.分享音频
//创建WXMusicObject对象 指定音频musicUrl
WXMusicObject wxMusicObject = new WXMusicObject();
wxMusicObject.musicUrl = “”;
//创建WXMediaMessage 包装WXMusicObject对象
WXMediaMessage wxMediaMessage = new WXMediaMessage();
wxMediaMessage.mediaObject = wxMusicObject;
wxMediaMessage.title = “我是标题”;
wxMediaMessage.description = “我是描述”;
//设置缩略图
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
wxMediaMessage.thumbData = bitmapToByte(bitmap, true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = gettTransaction(“music”);
req.message = wxMediaMessage;
req.scene = SendMessageToWX.Req.WXSceneTimeline;
iwxapi.sendReq(req);
7.分享音频
WXVideoObject wxVideoObject=new WXVideoObject();
wxVideoObject.videoUrl=”“;
WXMediaMessage wxMediaMessage=new WXMediaMessage();
wxMediaMessage.title=”“;
wxMediaMessage.description=”“;
wxMediaMessage.mediaObject=wxVideoObject;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
byte[] bytes = bitmapToByte(bitmap, true);
wxMediaMessage.thumbData=bytes;
SendMessageToWX.Req req=new SendMessageToWX.Req();
req.message=wxMediaMessage;
req.transaction=gettTransaction(“video”);
req.scene= SendMessageToWX.Req.WXSceneTimeline;
iwxapi.sendReq(req);
8.分享url到微信
WXWebpageObject wxEmojiObject=new WXWebpageObject();
wxEmojiObject.webpageUrl=”“;
WXMediaMessage wxMediaMessage=new WXMediaMessage(wxEmojiObject);
wxMediaMessage.title=”“;
wxMediaMessage.description=”“;
wxMediaMessage.thumbData=bitmapToByte(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher),true);
SendMessageToWX.Req req=new SendMessageToWX.Req();
req.transaction=gettTransaction(“webpage”);
req.scene=SendMessageToWX.Req.WXSceneTimeline;
req.message=wxMediaMessage;
iwxapi.sendReq(req);
9.发送表情到微信
WXEmojiObject wxEmojiObject=new WXEmojiObject();
wxEmojiObject.emojiPath=”“;//对应表情文件路径
WXMediaMessage wxMediaMessage=new WXMediaMessage(wxEmojiObject);
wxMediaMessage.title=”“;
wxMediaMessage.description=”“;
wxMediaMessage.thumbData=bitmapToByte(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher),true);
SendMessageToWX.Req req=new SendMessageToWX.Req();
req.transaction=gettTransaction(“emotion”);
req.scene=SendMessageToWX.Req.WXSceneTimeline;
req.message=wxMediaMessage;
iwxapi.sendReq(req);