第一步:

下载并安装SDK

添加代码和资源引用,我们提供了添加资源文件和jar文件的两种方式,可以根据需求选择
解压SDK压缩包,将文件夹中的'main/libs'和'main/res'文件夹复制到你的项目工程根目录下(如使用'ADT 17'以下用户需要手动添加'libs'下的jar文件到工程Path中)

结合上两篇文章 PushSDKMoudle中添加QQ,微信,新浪分享后的libs结构:

注:除jar包外,其余文件夹均需添加对应分享的so包。没有则不添加,附图:

第二步:

AndroidManifest配置:

  <!-- 分享--><activityandroid:name="com.umeng.socialize.editorpage.ShareActivity"android:theme="@style/Theme.UMDefault"android:excludeFromRecents="true"/>

增加权限:

<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" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

针对不平台所需要添加的数据
按照自己需要的平台添加对应的配置,如下图,其余请参考官方文档:

微信平台

<activityandroid:name="com.umeng.soexample.wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" />

注 :打包后的apk文件签名必须与 微信平台 设置一致

WXEntryActivity需建在wxapi的目录下,该类继承自WXCallbackActivity,预留空类即可,如图:

  <!-- 微信分享 --><activityandroid:name=".wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" />
public class WXEntryActivity extends WXCallbackActivity
{}

QQ、Qzone

<activityandroid:name="com.tencent.tauth.AuthActivity"android:launchMode="singleTask"android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencentAPPID" />
</intent-filter>
</activity>
<activity          android:name="com.tencent.connect.common.AssistActivity"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" />

注: 将Android manifest xml里的 腾讯平台APPID替换为自己申请的APPID,注意tencent前缀不要修改,否则无法正常实现QQ及Qzone登录

新浪微博

<activityandroid:name=".WBShareActivity"android:configChanges="keyboardHidden|orientation"android:screenOrientation="portrait" ><intent-filter><action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity>
<activityandroid:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"android:configChanges="keyboardHidden|orientation"android:windowSoftInputMode="adjustResize"android:exported="false" ></activity><service android:name="com.sina.weibo.sdk.net.DownloadService"android:exported="false"></service>

注:这里的DownloadService亮红不影响程序编译运行,不需要处理

同微信注册相同,在你的工程应用包名的相应目录下新增一个WBShareActivity类,该类继承自WBShareCallBackActivity,预留空类即可,如图:

public class WBShareActivity extends WBShareCallBackActivity {
}

在application中初始化,添加代码如下:

//微信 appid appsecret
PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");//新浪微博 appkey appsecret
PlatformConfig.setSinaWeibo("3921700954","04b48b094faeb16683c32669824ebdad");// QQ和Qzone appid appkey
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba"); 

第三步:

自定义分享,以及分享不同内容

在application中添加代码:

public static final SHARE_MEDIA[] displaylist = {SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE,SHARE_MEDIA.SINA /*,SHARE_MEDIA.DOUBAN*/};

在需要启用分享的Activity中添加如下代码:

 //分享private ShareAction shareAction = new ShareAction(WebViewActivity.this).setDisplayList(BaseApplication.displaylist).setShareboardclickCallback(shareBoardlistener);

针对不同平台使用不同监听器

使用setShareboardclickCallback() 可以进行分享面板不同按钮的点击回调,方便开发者进行特殊处理

private ShareBoardlistener shareBoardlistener = new ShareBoardlistener() {@Overridepublic void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {switch (share_media) {case WEIXIN:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[1]).share();break;case WEIXIN_CIRCLE:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[1]).share();break;case SINA:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[1]).share();break;case QZONE:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[0]).share();break;case QQ:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[0]).share();break;default:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[1]).share();break;}}};

监听回调结果:

 private UMShareListener umShareListener = new UMShareListener() {@Overridepublic void onResult(SHARE_MEDIA platform) {Toast.makeText(WebViewActivity.this, " 分享成功", Toast.LENGTH_SHORT).show();}@Overridepublic void onError(SHARE_MEDIA platform, Throwable t) {Toast.makeText(WebViewActivity.this, " 分享失败", Toast.LENGTH_SHORT).show();}@Overridepublic void onCancel(SHARE_MEDIA platform) {Toast.makeText(WebViewActivity.this, " 分享取消", Toast.LENGTH_SHORT).show();}};

设置分享内容ShareContent

 private ShareContent[] contents = new ShareContent[3];{contents[0] = new ShareContent();contents[1] = new ShareContent();contents[2] = new ShareContent();}
contents[0].mTitle = "分享";
contents[0].mText = "内容";
contents[0].mTargetUrl = "链接地址";
contents[0].mMedia = new UMImage(mContext, resource);//图片资源

最后启动分享功能:

 shareAction.open();

Android:Umeng(友盟) 微信,QQ,新浪分享 (三)相关推荐

  1. Android:Umeng(友盟)消息推送(二)

    在已集成友盟统计的情况下:Android:Umeng(友盟)数据统计(一) 第一步: 个人中心---U-Push(消息推送)---添加新应用---从已有应用中添加  如图: 获得Appkey和secr ...

  2. android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法

    这里介绍微信和新浪登录.微信登录和新浪登录都需要申请第三方账号.可以参考官方文档http://dev.umeng.com/social/android/operation#2还是很清晰的. 新浪微博开 ...

  3. HBuilder webApp开发(七)微信/QQ/新浪/腾讯微博分享

    HBuilder是支持微信分享(好友和朋友圈),QQ分享,新浪微博和腾讯微博分享. 但是在使用的过程中,官方给的文档似乎很坑爹. <分享插件配置> <分享插件开发指南> 都是2 ...

  4. 微信,新浪登录分享遇到的问题

    问题一: 项目要集成微信,新浪第三登录分享功能,通过shardsdk,首先获取sharesdk appkey 获取微信,微博appkey appsecret 配置签名文件,等等 然后发现微信授权页面是 ...

  5. HTML制作分享到QQ空间,微信,新浪等效果

    HTML制作分享到QQ空间,微信,新浪等效果 分享保存一个简单的HTML制作分享到QQ空间,微信,新浪等效果,分享一个比较简单的方法,只需套用代码便可完成 1.首先打开http://www.jiath ...

  6. Android之友盟多渠道打包与数据统计(非原创)

    文章大纲 一.多渠道打包与数据统计介绍 二.友盟实现多渠道打包实战 三.友盟数据统计实战 四.项目源码下载 五.参考文章 一.多渠道打包与数据统计介绍   多渠道打包,相信很多同学都知道.在Andro ...

  7. Android 集成友盟推送方案(1)

    我自己继承过FCM(国外app)百度云推送,阿里云推送,小米推送,华为推送,友盟推送,目前这几类推送方式.本文主讲友盟推送方式的集成步骤: 大家可以根据官网网址进行集成:官网如下: https://d ...

  8. android集成友盟u app,友盟U-Mini小程序集成指南

    适用范围 该文档适用于友盟+微信小程序统计SDK 2.3.2 及以上版本. 微信小程序统计SDK快速集成 1. 注册友盟+账号 登录友盟+官网,按照引导注册友盟+账号 特别提醒:我们建议开发者在注册账 ...

  9. Android集成友盟推送功能

    友盟是中国最大的移动开发者服务平台,为移动开发者提供免费的应用统计分析.社交分享.消息推送.自动更新.在线参数.移动推广效果分析.微社区等app开发和运营解决方案. 如何快速集成友盟推送功能: 1. ...

最新文章

  1. cloudemanager安装时出现ProtocolError: ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized问题解决方法(图文详解)...
  2. python待遇如何-老男孩学Python后就业如何?Python待遇高吗?
  3. MPLS标签分配控制方式——Vecloud
  4. 卷积神经网络看见了什么
  5. OpenCV: FFMPEG: tag 0x5634504d/‘MP4V‘ is not supported with codec id 12 and format ‘mp4 / MP4
  6. EIGRP路由协议基本设置
  7. python做数据排序,python 实现对数据的排序和绘图
  8. 如何手动添加或者修改海威康视摄像头IP地址的方法
  9. 堆栈和内存分配[转]
  10. Javascript特效:不断在页面跑的星星
  11. 妙用chrome插件,实现U校园自动填答案
  12. Vue PC端分辨率自适应
  13. Js~Boxy中的复杂弹出框
  14. 类似QQ的可隐藏的便签工具SNOTE
  15. 能和机器划拳,猜中你的表情,百度开了一家超好玩的“AI体验店”
  16. 1.30.Flink SQL案例将Kafka数据写入hive
  17. 云渲染技术在虚拟仿真医疗培训中的应用
  18. Ng机器学习 Week8 Unsupervised Learning
  19. 文件上传一些事(ie8/9下提示下载json文件)
  20. 潭州教育html视屏,潭州教育HTML多列布局CSS实现

热门文章

  1. devDependencies与dependencies
  2. 同态滤波 python_使用python差异隐私和同态的各种数据隐私保护方法
  3. Springboot秒杀系统(乐观锁+RateLimiter令牌+Redis缓存)
  4. 动漫漫画商城(Spring,SpringMVC,MyBatis,SSM,MYSQL,JSP,H-UI)
  5. Linux安装jdk的详细步骤
  6. jenkins 安装以及Jenkins无法在界面关闭跨站请求伪造保护(CSRF)解决403以及如何关闭Jenkins杀掉所有衍生进程
  7. linux缓冲区溢出攻击步骤,如何防范Linux操作系统下缓冲区溢出攻击
  8. Linux内核驱动模块测试 hello.ko
  9. 口语中使用频率相当高的俚语
  10. 【安卓开发之图片分享应用3:设置底部导航栏】