0、开发者自己做好准备工作:(包括开发者自己创建app和填写app的信息)

官方接入教程文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=&lang=zh_CN

 

1、添加依赖或者jar:

dependencies { compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+' }

dependencies { compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+' }

(其中,前者包含统计功能)

 

 

2、权限:

 

3、清单文件manifest配置:

 

 4、创建该路径下的类(包名.wxapi.WXEntryActivity(不可更改))

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO 自动生成的方法存根super.onCreate(savedInstanceState);//WechatShareTool类见下一步new WechatShareTool(this).getApi().handleIntent(getIntent(), this);}@Overridepublic void onReq(BaseReq arg0) {// TODO 自动生成的方法存根finish();}@Overridepublic void onResp(BaseResp resp) {// TODO 自动生成的方法存根switch (resp.errCode) { //根据需要的情况进行处理        case BaseResp.ErrCode.ERR_OK:            //正确返回            //ActivityTool.showToast为Toast的简单封装,开发中自行修改        ActivityTool.showToast(this, "分享成功");//后来微信改为无论分没分享都返回这一个            break;        case BaseResp.ErrCode.ERR_USER_CANCEL:            //用户取消      //  ActivityTool.showToast(this, "取消分享");//取消也会返回ERR_OK            break;        case BaseResp.ErrCode.ERR_AUTH_DENIED:            //认证被否决        ActivityTool.showToast(this, "分享失败,认证被否决");            break;        case BaseResp.ErrCode.ERR_SENT_FAILED:            //发送失败        ActivityTool.showToast(this, "发送失败");            break;            case BaseResp.ErrCode.ERR_UNSUPPORT:            //不支持错误        ActivityTool.showToast(this, "不支持错误");            break;            case BaseResp.ErrCode.ERR_COMM:            //一般错误        ActivityTool.showToast(this, "分享失败");            break;               default:            //其他不可名状的情况            break;}finish();}}

5、分享核心代码部分:

public class WechatShareTool {private final static String WX_APP_ID = "your key";//WX_APP_ID自行修改为你的appkeyprivate IWXAPI api;private int toFriend = SendMessageToWX.Req.WXSceneSession;//会话private int toFriendCircle = SendMessageToWX.Req.WXSceneTimeline;//朋友圈            //SendMessageToWX.Req.WXSceneFavorite //分享到收藏public WechatShareTool(Context context){api = WXAPIFactory.createWXAPI(context, WX_APP_ID,false);// 将应用的appId注册到微信    api.registerApp(WX_APP_ID);}public IWXAPI getApi(){return api;}/* * 是否安装了微信 */public boolean isWXAppInstalled(){return api.isWXAppInstalled();  }/** * 微信文字分享 * @param text    * @param isNotToFriend 是否分享到朋友圈 */public void shareText(String text,boolean isNotToFriend){//初始化一个 WXTextObject 对象,填写分享的文本内容WXTextObject textObj = new WXTextObject();textObj.text = text;//用 WXTextObject 对象初始化一个 WXMediaMessage 对象WXMediaMessage msg = new WXMediaMessage();msg.mediaObject = textObj;msg.description = text;shareToWX("text", msg, isNotToFriend);}/* * 保证字符串唯一 */private String buildTransaction(final String type) {return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();}/** * 分享图片 * @param file */public void shareImage(String picturePath,boolean isNotToFriend){Bitmap bmp = BitmapFactory.decodeFile(picturePath);//初始化 WXImageObject 和 WXMediaMessage 对象WXImageObject imgObj = new WXImageObject(bmp);WXMediaMessage msg = new WXMediaMessage();msg.mediaObject = imgObj;//设置缩略图Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 150, 150, true);bmp.recycle();msg.thumbData = OtherTool.bmpToByteArray(thumbBmp, true);shareToWX("img", msg, isNotToFriend);}/** * 分享音乐 * @param title * @param description * @param musicUrl * @param file */public void shareMusic(String title,String description,String musicUrl,String picturePath,boolean isNotToFriend){//初始化一个WXMusicObject,填写urlWXMusicObject music = new WXMusicObject();music.musicUrl=musicUrl;Bitmap bmp = BitmapFactory.decodeFile(picturePath);WXMediaMessage msg = getWXMediaMessage(title, description, music, bmp);shareToWX("music",msg,isNotToFriend);}/** * 分享视频 * @param title * @param description * @param viedoUrl * @param file */public void shareVideo(String title,String description,String viedoUrl ,String picturePath,boolean isNotToFriend){//初始化一个WXVideoObject,填写urlWXVideoObject video = new WXVideoObject();video.videoUrl = viedoUrl;Bitmap bmp = BitmapFactory.decodeFile(picturePath);WXMediaMessage msg = getWXMediaMessage(title, description, video, bmp);shareToWX("video",msg,isNotToFriend);}/* * 设置mediaMessage和图片缩略图 */private WXMediaMessage getWXMediaMessage(String title,String description,IMediaObject media,Bitmap bmp){WXMediaMessage msg = new WXMediaMessage();msg.mediaObject = media;msg.title = title;msg.description = description;//设置缩略图Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 100, 100, true);bmp.recycle();msg.thumbData = bmpToByteArray(thumbBmp, true);//方法在最后面return msg;}/* * 分享 */private void shareToWX(String type,WXMediaMessage msg,boolean isNotToFriend){//构造一个ReqSendMessageToWX.Req req = new SendMessageToWX.Req();req.transaction = buildTransaction(type);req.message =msg;if(isNotToFriend)req.scene = toFriendCircle;elsereq.scene = toFriend;req.userOpenId = WX_APP_ID;//调用api接口,发送数据到微信api.sendReq(req);}  /* * 图片转换 */private byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {ByteArrayOutputStream output = new ByteArrayOutputStream();bmp.compress(CompressFormat.PNG, 100, output);if (needRecycle) {bmp.recycle();}byte[] result = output.toByteArray();try {output.close();} catch (Exception e) {e.printStackTrace();}return result;}}

6、使用 

实例化 WechatShareTool类后直接调用它的对应public的方法即可

 

更多相关文章

  1. Android之使用AIDL时的跨进程回调—Server回调Client
  2. Activity学习(一):生命周期
  3. android postDelayed 方法的简单使用
  4. 实现退出时关闭所有Activity的方法
  5. Android7.1修改系统默认多媒体音量大小
  6. Android面试知识点汇总
  7. QT 环境的 Android(安卓)配置和编译
  8. Android(安卓)WebView 中 JS 与Java之间通信
  9. Android(安卓)ColorStateList使用方法

随机推荐

  1. menu.addIntentOptions 添加动态菜单
  2. 在 Android(安卓)Studio 中使用 Lambda
  3. Android中TimePickerDialog的使用
  4. Android源代码编译一次成功
  5. Android的蓝牙开发技术(一)
  6. android AlertDialog 捕获返回键
  7. android中常用类及方法
  8. IPC(六)—一张图解释Messenger的设计思想
  9. android Region碰撞
  10. Android(安卓)轮播图banner框架的使用