一、概述
最近一个老项目要添加易信分享功能,原项目使用的是eclipse开发,项目之前的分享用的第三方分享ShareSdk,于是基于ShareSdk我编写了一个Demo来测试该功能。
ShareSdk官网:http://www.mob.com/
还没有账号的需要注册一个账号
易信开发平台:http://open.yixin.im/
需要自己注册账号,账号注册成功后需要提交自己的应用信息,当然这里的应用必须是已经上线了的应用,需要填写应用的市场下载地址,还有一个就是提前准备好应用的签名信息,需要自己下载应用签名工具获取。

二、实现效果图
1.主界面

2.易信好友分享

3.易信朋友圈分享

三、核心代码

MainActivity.java:

package com.czhappy.kuaizhi;import java.util.HashMap;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.Toast;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.yixin.friends.Yixin;
import cn.sharesdk.yixin.friends.Yixin.ShareParams;
import cn.sharesdk.yixin.moments.YixinMoments;public class MainActivity extends Activity implements OnClickListener, ShareThreadListener{private LinearLayout yx_friend_layout;private LinearLayout yx_circle_layout;private Handler handler = new Handler();private ShareThreadListener threadListener = this;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ShareSDK.initSDK(this);initView();}private void initView() {yx_friend_layout = (LinearLayout) this.findViewById(R.id.yx_friend_layout);yx_friend_layout.setOnClickListener(this);yx_circle_layout = (LinearLayout) this.findViewById(R.id.yx_circle_layout);yx_circle_layout.setOnClickListener(this);}@Overridepublic void onClick(View v) {String imgPath = "http://avatar.csdn.net/E/F/1/1_chenzheng8975.jpg";String url = "http://blog.csdn.net/chenzheng8975/article/details/53893666";switch (v.getId()) {case R.id.yx_friend_layout:shareYX(1, "title易信好友分享", "content易信好友分享", imgPath, url, 111);break;case R.id.yx_circle_layout:shareYX(2, "title易信好友分享", "content易信好友分享", imgPath, url, 222);break;default:break;}}public void shareYX(int shareType, String title, String content, String imgPath, String url,int shareTypeId){String name = "";int res = 0;switch(shareType){case 1:name = Yixin.NAME;res = R.string.yixin_client_inavailable;break;case 2:name = YixinMoments.NAME;res = R.string.yixin_client_inavailable;break;}shareYX(title, content, imgPath, url, name, res);}public void shareYX(String title, String content, String imagePath, String url, String name, int res){Platform yx = ShareSDK.getPlatform(this, name);if(checkValid(yx, res)){ShareParams sp = new ShareParams();sp.setTitle(title);sp.setText(content);//网页分享sp.setShareType(Platform.SHARE_WEBPAGE);sp.setUrl(url);sp.setImageUrl(imagePath);yx.setPlatformActionListener(shareListener); // 设置分享事件回调// 执行图文分享yx.share(sp);}}/*** 验证有效性* @param p* @param res* @return*/private boolean checkValid(Platform p, final int res){if(!p.isValid()){handler.post(new Runnable() {@Overridepublic void run() {threadListener.onMsg(res);}});return false;}return true;}@Overridepublic void onError(Platform plat, int action, Throwable t) {Toast.makeText(MainActivity.this, "分享失败", Toast.LENGTH_SHORT).show();}@Overridepublic void onComplete(Platform plat, int action,HashMap<String, Object> res) {Toast.makeText(MainActivity.this, "分享完成", Toast.LENGTH_SHORT).show();}@Overridepublic void onCancel(Platform plat, int action) {Toast.makeText(MainActivity.this, "分享取消", Toast.LENGTH_SHORT).show();}@Overridepublic void onMsg(int res) {Toast.makeText(MainActivity.this, "res="+getString(res), Toast.LENGTH_SHORT).show();}/*** 分享回调*/PlatformActionListener shareListener = new PlatformActionListener() {@Overridepublic void onError(final Platform plat, final int action, final Throwable t) {Log.e("log", t.getMessage());handler.post(new Runnable() {@Overridepublic void run() {threadListener.onError(plat, action, t);}});}@Overridepublic void onComplete(final Platform plat, final int action, final HashMap<String, Object> res) {handler.post(new Runnable() {@Overridepublic void run() {threadListener.onComplete(plat, action, res);}});}@Overridepublic void onCancel(final Platform plat, final int action) {Log.e("log", "取消分享");handler.post(new Runnable() {@Overridepublic void run() {threadListener.onCancel(plat, action);}});}};
}

ShareThreadListener.java

package com.czhappy.kuaizhi;import java.util.HashMap;import cn.sharesdk.framework.Platform;/*** 分享线程穿透监听器* @author Administrator**/
public interface ShareThreadListener {//失败public void onError(Platform plat, int action, Throwable t);//完成public void onComplete(Platform plat, int action, HashMap<String, Object> res);//取消public void onCancel(Platform plat, int action);//消息public void onMsg(int res);
}

四、注意事项

1、项目中使用的jar包

2、需要添加与微信类似的YXEntryActivity

3、assets目录下添加ShareSDK.xml配置文件

Android利用ShareSdk实现易信分享相关推荐

  1. Android 利用广播实现短信的自动转发

    由于初学(菜)的原因,没有考虑到在6.0版本以上需要权限的问题,等到期末考试后会及时进行更新 初学安卓,代码结构略显混乱,有任何问题欢迎提出! 界面 布局 布局中主要有四个元素,分别为设置号码,清除号 ...

  2. ShareSDK实现第三方微信分享功能

    目标: 集成ShareSDK,然后实现自己的软件可以分享信息到微信等第三方交互平台上面去. 本文以集成ShareSDK和实现微信分享为例,具体说一下实现软件第三方分享的流程. 1. 获取注册Share ...

  3. 易信java_新手指南-易信开放平台

    易信Android平台SDK使用新手指南 本文将介绍SDK的使用.如果你想详细的了解每个API用法,请查阅 API文档 或下载阅读 易信SDK Sample 源码. 一.准备 1. 下载易信客户端,并 ...

  4. Android通过ShareSDK实现新浪微博分享

    ShareSDK社会化分享的官方说明:是中国最大的APP内分享服务提供商,ShareSDK社会化分享,全面支持微信,微博,QQ空间,来往,易信,Facebook等国内外40个平台. ShareSDK官 ...

  5. Android使用ShareSDK集成第三方登录和分享(v3.1.2)

    一.产品概述 ShareSDK是一种社会化分享组件,为iOS.Android.WP8 的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台. 二.集成方 ...

  6. 北京弘易信泰 网络数据抓取技术实践分享

    弘易信泰,作为大数据产品厂商,长期关注业界数据抓取技术的变化,当前,互联网数据以前所未有的态势迅猛增长,对于信息化技术而言,海量数据的抓取技术尤为重要,在数据迅速发展的大背景下,中国政府与企业类型的信 ...

  7. Android 利用广播实现黑名单【指定号码】的短信的拦截 附源码下载链接

    Android 利用广播实现指定号码的短信的拦截 根据最近的学习内容,今天实现了利用广播进行指定号码的拦截 步骤: ①.写一个数据库的帮助类,实现对数据库的创建,总共创建两个数据库psms(受保护的短 ...

  8. Android集成ShareSDK第三方分享和登录

    本篇记录在Android平台上如何集成ShareSDK实现第三方登陆和分享,以及其中可能会遇到的坑. Mob官网 下载 如图选择你需要分享的平台: 集成 解压下载的文件,然后在ShareSDK for ...

  9. android之ShareSDK实现分享功能

    现在随着科技的发达,人们交友的方式也越来越广泛,用到的app也越来越多,那么每当我们发现了好玩的好吃的好看的文章之类的,想分享到朋友圈.QQ空间.微博等如何做呢?由于这个需求越来越被需要,所以Shar ...

最新文章

  1. “区块链”究竟是什么
  2. R语言随机森林模型:计算随机森林模型的特征重要度(feature importance)并可视化特征重要度、使用少数重要特征拟合随机森林模型(比较所有特征模型和重要特征模型在测试集上的表现差异)
  3. x86汇编-1(第一章—第二章)8086处理器基本情况
  4. orcale的rank(排名函数)实例
  5. Sublime Text 2搭建Java开发环境
  6. php增加vip等级设置,xiu主题添加vip等级评论样式
  7. bzoj2655 calc
  8. xhEditor用法
  9. 电脑版微信防撤回大全
  10. Nvidia TX2 使用Intelrealsense L515 并安装 RTABmap建图包编译成功
  11. [Python] 通过采集两万条数据,对《无名之辈》影评分析
  12. 怎么从已有文件中挑选需要的文字重新生成新文件_word 中如何实现 一个正文位置输入 另一个正文地方自动生成一样的...
  13. 如何下载ArcGis Server离线地图瓦片数据
  14. 如何才能骗过面部识别系统?
  15. 极客时间和极客学院_极客奔跑
  16. 【git系列】重命名文件后为何就是untracked状态了 以及 应该如何正规地修改文件呢
  17. Linux 和UNIX 的新手培训教程
  18. jquery 添加插入元素技巧前面和后面
  19. 需要把哥德尔不完备定理讲到什么程度才能被大众所熟知?
  20. Windows系统编译GSL2.7用于C语言编程(2022.5.8)

热门文章

  1. Python程序设计之组合数据类型
  2. 网瘾少年的自白:预退学少年最终实现编程梦?
  3. 《刺客信条:英灵殿》可能要让你失望了
  4. android的XML连续动画
  5. Vova and Trophies _Codeforces 1082B
  6. Kafka 麒麟先生_成都环球中心惊现2米长颈鹿(还为圈友带来了各种福利!福利!)...
  7. 怎样让学到的记得住,用得上?
  8. iphone 快捷指令 python_苹果iPhone快捷指令怎么用?IOS13快捷指令使用技巧图文介绍...
  9. 招财宝+保本基金的稳健高杠杆玩法
  10. Python列表长度