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);