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、权限:

<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

3、清单文件manifest配置:

 <!-- 微信开放平台配置 --><activityandroid:name=".wxapi.WXEntryActivity"android:label="@string/app_name"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:exported="true"android:taskAffinity="net.sourceforge.simcpux"android:launchMode="singleTask"></activity>

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_OKbreak;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的方法即可

Android集成微信SDK:微信分享相关推荐

  1. iOS开发 微信SDK的分享功能

    1.首先下载微信SDK:微信SDK下载地址(更多关于微信SDK信息文档请访问官方网站:微信开放平台) 2.导入微信SDK 将下载下来的SDKExport文件夹导入到工程,其中包含3个核心文件libWe ...

  2. 史上最具体Android集成QQ,微信,微博分享(不用第三方)持续更新中

    QQ 下载sdk并执行demo 各种配置 IUiListener 分享图片 分享到QQ 分享到QZONE Sina微博 配置 选择集成sdk方式 分享图片 微信 朋友 朋友圈 如今项目中用个第三方登录 ...

  3. android qq分享自动弹出,史上最详细Android集成QQ,微信,微博分享(不要第三方)持续更新中...

    QQ1 下载sdk并运行demo 2 各种配置 IUiListener 4 分享图片41 分享到QQ 41 分享到QZONE Sina微博配置 选择集成sdk方式 分享图片 现在项目中用个第三方登录, ...

  4. 史上最详细Android集成QQ,微信,微博分享(不用第三方)持续更新中

    QQ 下载sdk并运行demo 各种配置 IUiListener 分享图片 分享到QQ 分享到QZONE Sina微博 配置 选择集成sdk方式 分享图片 微信 朋友 朋友圈 现在项目中用个第三方登录 ...

  5. android友盟微信授权登录清除,【转载】Android友盟SDK微信授权登录接入

    微信授权登录接入需要先到微信开放平台申请好应用的APPID,交纳300大洋费用得到授权登录权限后才能使用,此处不再赘述. 接入的两种方式 -- 微信SDK接入:使用微信官方SDK接入,需要分" ...

  6. UNI-APP/VUE 项目集成 微信SDK /微信开放标签 教程和避坑指南

    UNI-APP/VUE 项目集成微信SDK教程和避坑指南 文章同步发布于

  7. Android集成友盟社会化分享

    现在社会化分享组件有很多友推.Mob的ShareSDK.友盟社会化分享组件等,前面两种以前在做项目的时候用到过,最近的项目需要实现分享视频到各社交平台,对比了这三种组件觉得友盟社会化分享组件更适合这个 ...

  8. Android 集成 Agora SDK 快速体验 RTC 版多人视频聊天|掘金技术征文

    RTC (Real-Time Communication) 作为实时通讯领域的"新贵",在互动直播.远程控制.多人视频会议.屏幕共享等领域广受好评,如果你还不了解 RTC ,Tak ...

  9. Android微信SDK实现分享

    用微信提供的SDK来实现分享 从http://open.weixin.qq.com下载Android相关的jar包,将libammsdk.jar加入到项目中. 微信分享的核心类,部分代码如下: Wec ...

  10. 微信中分享html5网页sdk,微信SDK网页分享

    步骤一:绑定域名 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名". image.png 步骤二:引入JS文件 ...

最新文章

  1. SQL查询除了某一列的其他列
  2. 九度 1209:最小邮票数(多重背包)
  3. 两个指针变量可以相减
  4. tf.Graph()函数
  5. python中去除异常值_在Python中获取异常值
  6. [转载] Java中为什么要有重载现象
  7. python运行系统_python执行系统命令的方法
  8. android日期时间控件
  9. Python调用百度API实现人脸融合
  10. Expandable Button
  11. pythondocx更新目录_使用Python更新MS Word .docx文档的目录(目录)
  12. ios控制视图切换方向
  13. C语言——顺序结构训练题
  14. 华为服务器显示器蓝屏怎么办,华为交换下误接TP-LINK交换导致监控画面蓝屏的解决方案...
  15. “_CRT_SECURE_NO_DEPRECATE”: 未定义宏或在预编译头使用后定义发生改变
  16. Android 注解处理器使用攻略
  17. 线性代数常见的几种行列式
  18. 马克思主义03709
  19. pandas python groupby_python – 如何在Pandas groupby之后获得多个条件操作?
  20. SCL定时 1500_西门子SCL编程实例 | 多个灯的逻辑控制程序

热门文章

  1. Win7禁用UAC(User Account Control,用户帐户控制)设置
  2. linux系统句柄数命令
  3. 网站安全扫描工具(AppScan7.8/JSky)
  4. 网页上传到服务器中文乱码问题
  5. 隐形牙套牙齿矫正水深套路多?选对产品很重要
  6. 短信接口安全防御策略
  7. LaTeX调整itemize和enumerate间距(转载)
  8. python利用图片制作简易视频
  9. PayPal防冻结攻略
  10. 转个苹果公司联系邮箱大全