Umeng Social SDK 开发手册 变更说明, 表 1 版本号变更备注 V3.2 1 添加摇一摇分享 2 添加分平台设置分享内容
目录 Umeng Social SDK 开发手册...1 前提说明...3 一 SDK 功能接口...3 1.1 打开分享面板 ( openshare )...3 1.2 授权接口 ( dooauthverify )...5 1.3 直接分享接口 ( directshare, 底层分享 API )...6 1.4 指定平台分享, 内容可编辑 ( postshare )...7 1.5 分享到多个已授权的平台 ( postsharemulti )...8 1.6 用户登录 ( Login )...9 1.7 使用自有账户登录 ( Login )...10 1.8 分享到短信 ( sharesms )...11 1.9 分享到邮件 ( shareemail )...11 1.10 获取用户个人信息 ( getuserinfo )...12 1.11 获取平台相关信息 ( getplatforminfo )...13 1.12 打开用户中心 ( openusercenter )...14 1.13 发表评论 ( postcomment )...15 1.14 获取评论列表 ( getcomments )...16 1.15 打开评论列表页面 ( opencomment )...17 1.16 发布 Like ( postlike )...18 1.17 发表 UnLike ( postunlike )...19 1.18 获取好友列表 ( getfriends )...20 1.19 注册回调接口 ( registerlistener )...21 1.20 用户注销 ( loginout )...22 1.21 删除授权 ( deleteoauth )...23 1.22 设置要分享的文字内容 ( setsharecontent )...24 1.23 设置平台通用的多媒体分享内容 ( setsharemedia )...24 1.24 设置平台独立的分享内容 ( setsharemedia )...25 二 注册摇一摇相关功能...26 2.1 注册摇一摇截图分享 ( registershakelistender )...26 2.2 注册摇一摇打开分享面板 ( registershaketoopenshare )...28 2.3 注册摇一摇截图 ( registershaketoscrshot )...28 2.4 截图 ( takescrshot )...29 三 SDK 平台配置 ( SocializeConfig )...30 3.1 设置 SSO 授权 ( setssohandler )...30 3.2 添加对 QQ 平台的支持 ( supportqqplatform )...30 3.3 添加对微信平台的支持 ( supportwxplatform )...31 3.4 添加微信朋友圈的支持 ( supportwxcircleplatform )...32 3.5 分享面板上的平台排序 ( setplatformorder )...32 3.6 移除分享面板上的平台 ( removeplatform )...33 3.7 获取用户选中的平台 ( getselectedplatform )...33 3.8 关注某平台的官方微博 ( addfollow )...34 四 线上文档...34
前提说明 假设在你的 Activity 中声明了如下成员变量, 文档中将使用该成员变量进行函数调用. 1 UMSocialService mcontroller = UMServiceFactory.getUMSocialService( com.umeng.share, RequestType.SOCIAL); 2 文档中出现 YourActivity.this 或者 mcontext 的地方开发者替换成要调用函数时用户所在的 Activity 即可 ; 3 文档中出现的 mumengsdkbutton 假设为你的布局文件中的某个按钮 ; 4 与摇一摇相关的功能请参考线上摇一摇集成文档 一 SDK 功能接口 1.1 打开分享面板 ( openshare ) 接口原型 1 : public void openshare(final Activity activity, boolean forcelogin) ; activity forcelogin 说明 调用者 activity 使用 Social SDK 时, 打开的分享平台选择面板为 Dialog 类型, 依赖于开发者的 Activity. 打开分享面板时是否强制用户登录, 默认为 false. 调用打开分享面板接口的示例代码如下 : public void onclick(view v) { // 点击相关按钮, 打开分享面板 if ( v == mumengsdkbutton ) { mcontroller.openshare(youractivity.this, false);
接口原型 2 : public void openshare(final Activity activity, boolean forcelogin, UMBaseAdapter adapter); activity forcelogin adapter 说明 调用者 activity 使用 Social SDK 时, 打开的分享平台选择面板为 Dialog 类型, 依赖于开发者的 Activity. 打开分享面板时是否强制用户登录, 默认为 false. 截图适配器 该接口为打开分享面板, 并且将要分享的图片替换为当前屏幕的截图 调用打开分享面板接口的示例代码如下 : public void onclick(view v) { // 点击相关按钮, 打开分享面板 if ( v == mumengsdkbutton ) { mcontroller.openshare(youractivity.this, false, new UMAppAdapter(YourActivity.this)); 界面截图 :
1.2 授权接口 ( dooauthverify ) public void dooauthverify(final Context, final SHARE_MEDIA platform, UMAuthListener ) platform 说明调用者应用的上下文环境 用户要进行授权的目标平台授权监听接口, 包括授权错误 授权完成 授权取消 授权开始的回调函数 调用授权接口的示例代码如下 : public void onclick(view v) { // 点击相关按钮进行授权 if ( v == mumengsdkbutton ) { mcontroller.dooauthverify(mcontext, SHARE_MEDIA.SINA, new UMAuthListener() { public void onerror(socializeexception e, SHARE_MEDIA platform) { public void oncomplete(bundle value, SHARE_MEDIA platform) { String uid = value.getstring("uid") ; // 判断是否成功 if (value!= null &&!TextUtils.isEmpty( uid ) ) { Toast.makeText(mContext, " 授权成功.", Toast.LENGTH_SHORT).show(); else { Toast.makeText(mContext, " 授权失败 ", Toast.LENGTH_SHORT).show(); public void oncancel(share_media arg0) { public void onstart(share_media arg0) { );
1.3 直接分享接口 ( directshare, 底层分享 API ) public void directshare(final Context, final SHARE_MEDIA platform, final SnsPostListener ) { platform 说明调用者应用的上下文环境 调用者要分享到的目标平台分享的监听接口, 分享开始 完成的回调 如果用户还没有授权目标平台则需要先进行授权, 授权完成后则直接分享, 没有内容编辑页面 适合开发者自定义 UI, 然后调用 directshare 接口进行分享 调用直接分享接口的示例代码如下 : public void onclick(view v) { // 点击相关按钮直接分享, 如果用户没有授权则需要先授权. if ( v == mumengsdkbutton ) { mcontroller.directshare(youractivity.this, SHARE_MEDIA.SINA, new SnsPostListener() { public void onstart() { ); public void oncomplete(share_media platform, int ecode, SocializeEntity entity) { Toast.makeText(YourActivity.this, " 分享完成 ", Toast.LENGTH_SHORT).show(); // end if 具体集成方案请参考在线文档,http://dev.umeng.com/social/android/share/specific-integration
1.4 指定平台分享, 内容可编辑 ( postshare ) public void postshare(context, SHARE_MEDIA platform, SnsPostListener ) 说明 platform 调用者应用的上下文环境 用户要分享到的目标平台 分享监听器 如果用户还没有授权目标平台则需要先进行授权, 用户授权后会跳转到内容编辑页面, 用户选择发送后直接分享如果不想编辑分享的内容, 则换用 directshare 即可 调用 postshare 接口的示例代码如下 : public void onclick(view v) { // 点击相关按钮进行分享 if ( v == mumengsdkbutton ) { mcontroller.postshare(mcontext, SHAER_MEDIA.QZONE, new SnsPostListener() { public void oncomplete(share_media arg0, int arg1, SocializeEntity arg2) { Toast.makeText(mContext, " 分享完成 ", Toast.LENGTH_SHORT).show(); public void onstart() { Toast.makeText(mContext, " 开始分享 ", Toast.LENGTH_SHORT).show(); );
1.5 分享到多个已授权的平台 ( postsharemulti ) public void postsharemulti(final Context, final MulStatusListener, SHARE_MEDIA... medias); 说明 medias 调用者应用的上下文环境 分享监听器 开发者指定的可变数量的分享平台, 平台授权的情况下则可直接分享 开发者指定多个平台, 调用该接口时, 会将内容分享到 meidas 中所有已授权的平台 调用 postsharemulti 接口的示例代码如下 : public void onclick(view v) { // 点击相关按钮进行分享 if ( v == mumengsdkbutton ) { mcontroller.postsharemulti(mcontext, new MulStatusListener() { public void onstart() { Toast.makeText(mContext, " 开始分享.", Toast.LENGTH_SHORT).show(); public void oncomplete(multistatus snsst, int st, SocializeEntity entity) { Toast.makeText(mContext, snsst.tostring(), Toast.LENGTH_LONG).show();, SHARE_MEDIA.SINA, SHARE_MEDIA.TENCENT, SHARE_MEDIA.QZONE ); // end if
1.6 用户登录 ( Login ) public void login(context, SHARE_MEDIA platform, SocializeClientListener ) ; 说明 platform 调用者应用的上下文环境 要登录的平台 监听器, 包含开始登录 完成登录两个回调函数 登录成功后会返回用户昵称 评论数量等用户信息, 可在 entity 对象上通过 get 方法获取. 调用 login 接口的示例代码如下 : public void onclick(view v) { // 点击相关按钮进行分享 if ( v == mumengsdkbutton ) { mcontroller.login(mcontext, SHARE_MEDIA.SINA, new SocializeClientListener() { public void onstart() { public void oncomplete(int status, SocializeEntity entity) { if (status == 200) { Toast.makeText(mContext, " 登录成功.", Toast.LENGTH_SHORT).show(); else Toast.makeText(mContext, " 登录失败 ", Toast.LENGTH_SHORT).show(); ); // end if
1.7 使用自有账户登录 ( Login ) public void login(context, SnsAccount account, SocializeClientListener ); account 说明调用者应用的上下文环境 要登录的账户信息, 必须包含 usid 监听器, 包含开始登录 完成登录两个回调函数 登录成功后会返回用户昵称 评论数量等用户信息, 可在 entity 对象上通过 get 方法获取. 调用 login 接口的示例代码如下 : public void onclick(view v) { // 点击相关按钮进行分享 if ( v == mumengsdkbutton ) { // account 为 SnsAccount 类型, 需要开发者自己定义 mcontroller.login(mcontext, account, new SocializeClientListener() { public void onstart() { public void oncomplete(int status, SocializeEntity entity) { if (status == 200) { Toast.makeText(mContext, " 登录成功.", Toast.LENGTH_SHORT).show(); else Toast.makeText(mContext, " 登录失败 ", Toast.LENGTH_SHORT).show(); ); // end if
1.8 分享到短信 ( sharesms ) public void sharesms(context ); 说明 调用者应用的上下文环境 通过 mcontroller 设置要分享的内容后, 直接调用该方法即可分享到短信. 调用 sharesms 接口的示例代码如下 : public void onclick(view v) { // 点击相关按钮进行分享 if ( v == mumengsdkbutton ) { // 分享到短信 mcontroller.sharesms( mcontext ) ; // end if 1.9 分享到邮件 ( shareemail ) public void shareemail(context ); 说明 调用者应用的上下文环境 通过 mcontroller 设置要分享的内容后, 直接调用该方法即可分享到 email. 调用 shareemail 接口的示例代码如下 : public void onclick(view v) { // 点击相关按钮进行分享 if ( v == mumengsdkbutton ) { // 分享到 email mcontroller.shareemail (mcontext ) ; // end if
1.10 获取用户个人信息 ( getuserinfo ) public void getuserinfo(context, FetchUserListener ); 说明 调用者应用的上下文环境 监听器 获取用户状态信息, 包含设备授权信息, 登录信息等, 调用 getuserinfo 接口的示例代码如下 : mcontroller.getuserinfo(this, new FetchUserListener() { public void onstart() { public void oncomplete(int status, SocializeUser user) { if( user!= null && user.mloginaccount!= null &&!TextUtils.isEmpty(user.mLoginAccount.getAccountIconUrl()) ){ // 可以从 user 中获取用户信息 );
1.11 获取平台相关信息 ( getplatforminfo ) public void getplatforminfo(context, SHARE_MEDIA media, UMDataListener ); 说明 media 调用者应用的上下文环境 要获取信息的平台 监听器 获取用户状态信息, 包含设备授权信息, 登录信息等, 调用 getuserinfo 接口的示例代码如下 : mcontroller.getplatforminfo(mcontext, SHARE_MEDIA.SINA, new UMDataListener() { public void onstart() { public void oncomplete(int status, Map<String, Object> info) { // 成功获取平台信息 if (status == 200 && info!= null) { StringBuilder sb = new StringBuilder(); Set<String> keys = info.keyset(); for (String kstr : keys) { sb.append(kstr + "=" + info.get(kstr).tostring() + "\r\n"); textinfo.settext(sb.tostring()); android.util.log.d("testdata", sb.tostring()); else textinfo.settext(" 发生错误 :" + status); );
1.12 打开用户中心 ( openusercenter ) public void openusercenter(context, int... config); config 调用者应用的上下文环境 说明 config 登录页面配置, 可使用 flag_a flag_b 方式, 仅第一个可变起作用 调用 openusercenter 接口的示例代码如下 : mcontroller.openusercenter( YourActivity.this); 界面如下 :
1.13 发表评论 ( postcomment ) public void postcomment(context, UMComment comment, MulStatusListener, SHARE_MEDIA... platforms) ; 说明 comment platforms 调用者应用的上下文环境 要发表的评论内容监听器评论要发布到的平台 调用 postcomment 接口的示例代码如下 : // socializecomment 为 UMComment 类型 mcontroller.postcomment(mcontext, socializecomment, new MulStatusListener() { public void onstart() { public void oncomplete(multistatus multistatus,int status, SocializeEntity entity) { if(status == 200) { Toast.makeText(mContext, " 发送成功 ", 1).show(); else { Toast.makeText(mContext, " 发送失败 ", 1).show(); );
1.14 获取评论列表 ( getcomments ) public void getcomments(context, FetchCommetsListener, long sincetime) ; sincetime 说明调用者应用的上下文环境 监听器若指定此, 则返回此指定时间以前的 10 条评论 调用 getcomments 接口的示例代码如下 : // socializecomment 为 UMComment 类型 mcontroller.getcomments(youractivity.this, new FetchCommetsListener() { public void onstart() { public void oncomplete(int status, List<UMComment> comments,socializeentity entity) { if(status == 200 && comments!= null){ mcomments.addall(comments); Toast.makeText(mContext, " 已获取评论 count="+comments.size(), 1).show();, -1);
1.15 打开评论列表页面 ( opencomment ) public void opencomment(context, boolean forcelogin); forcelogin 调用者应用的上下文环境 是否强制登录, 一般情况下为 false 说明 调用 opencomment 接口的示例代码如下 : // mcontroller.opencomment(mcontext, false); 界面如下 :
1.16 发布 Like ( postlike ) public void postlike(context, SocializeClientListener ); 说明 调用者应用的上下文环境 监听器 调用 postlike 接口的示例代码如下 : // mcontroller.postlike(mcontext, new SocializeClientListener() { public void onstart() { ); public void oncomplete(int status, SocializeEntity entity) { if (status == 200) { Toast.makeText(mContext, " 发布 Like 成功.", Toast.LENGTH_SHORT).show(); else { Toast.makeText(mContext, " 发布 like 失败 ", Toast.LENGTH_SHORT).show();
1.17 发表 UnLike ( postunlike ) public void postunlike(context, SocializeClientListener ); 说明 调用者应用的上下文环境 监听器 调用 postunlike 接口的示例代码如下 : // mcontroller.postunlike(mcontext, new SocializeClientListener() { public void onstart() { ); public void oncomplete(int status, SocializeEntity entity) { if (status == 200) { Toast.makeText(mContext, " 发布 unlike 成功.", Toast.LENGTH_SHORT).show(); else { Toast.makeText(mContext, " 发布 unlike 失败 ", Toast.LENGTH_SHORT).show();
1.18 获取好友列表 ( getfriends ) public void getfriends(context, FetchFriendsListener, SHARE_MEDIA platform); platform 说明调用者应用的上下文环境 监听器目标平台, 比如新浪微博, 腾讯微博等 调用 getfriends 接口的示例代码如下 : // mcontroller.getfriends(mcontext, new FetchFriendsListener() { public void onstart() { public void oncomplete(int status, List<UMFriend> friends) { StringBuilder sb = new StringBuilder(); if (status == 200 && friends!= null) { for (UMFriend friend : friends) { sb.append(friend.getname() + "\r\n"); else { sb.append("status_code=" + status); textinfo.settext(sb.tostring());, SHARE_MEDIA.TENCENT);
1.19 注册回调接口 ( registerlistener ) public boolean registerlistener(icallbacklistener ) ; 说明 回调接口, 子类有 SnsPostListener,UMAuthListener,MulStatusListener 等 调用手动注册回调接口 registerlistener 接口的示例代码如下 : IcallbackListener = new SnsPostListener() { public void onstart() { Toast.makeText(mContext, "onstart", 0).show(); public void oncomplete(share_media platform, int ecode, SocializeEntity entity{ Toast.makeText(mContext, " 分享成功 ", 0).show(); ; // 注册分享监听器 mcontroller.registerlistener( ); 比如在分享到微信时, sdk 默认没有提供分享完成的回调, 开发者可以通过该方法注册回调接口, 当分享完成时则会回调 oncomplete 方法 用户也可以调用 unregisterlistener(icallbacklistener ) 来注销监听器
1.20 用户注销 ( loginout ) public void loginout(context, SocializeClientListener ); 调用者应用的上下文环境 说明 监听器, 包含开始登录 完成登录两个回调函数 登录成功后会返回用户昵称 评论数量等用户信息, 可在 entity 对象上通过 get 方法获取. 调用 loginout 接口的示例代码如下 : public void onclick(view v) { // 点击相关按钮进行分享 if ( v == mumengsdkbutton ) { // account 为 SnsAccount 类型, 需要开发者自己定义 mcontroller.loginout(mcontext, new SocializeClientListener() { public void onstart() { public void oncomplete(int status, SocializeEntity entity) { if (status == 200) { Toast.makeText(mContext, " 注销成功.", Toast.LENGTH_SHORT).show(); else Toast.makeText(mContext, " 注销失败 ", Toast.LENGTH_SHORT).show(); ); // end if
1.21 删除授权 ( deleteoauth ) public void deleteoauth(context, SHARE_MEDIA platform, SocializeClientListener ); 说明 platform 调用者应用的上下文环境 要删除授权的平台 监听器 调用 deleteoauth 接口的示例代码如下 : mcontroller.deleteoauth(mcontext, SHARE_MEDIA.SINA, new SocializeClientListener() { public void onstart() { ); public void oncomplete(int status, SocializeEntity entity) { if (status == 200) { Toast.makeText(mContext, " 删除成功.", Toast.LENGTH_SHORT).show(); else { Toast.makeText(mContext, " 删除失败 ", Toast.LENGTH_SHORT).show();
1.22 设置要分享的文字内容 ( setsharecontent ) public void setsharecontent(string content); 说明 content 要分享的文字内容 调用 setsharecontent 接口的示例代码如下 : mcontroller.setsharecontent( 这些文字我要分享到新浪微博 ); 1.23 设置平台通用的多媒体分享内容 ( setsharemedia ) public void setsharemedia(umediaobject media); media 说明 要分享的多媒体内容, 可传递 UMImage, Umusic, UMVideo 对象 要将多媒体内容, 例如图片 音乐等分享到社交平台, 则需使用该方法 设置的分享内容使用于所有社交平台 ( 设置了平台独立的分享内容的平台除外, 见 1.24 ) 调用 setsharemedia 接口的示例代码如下 : // 构建 UMImage, 1 为当前的 activity 2 为图片的链接 UMImage shareimage = new UMImage(getActivity(), "http://www.umeng.com/images/pic/banner_module_social.png"); // 设置图片分享内容, mcontroller.setsharemedia( shareimage );
1.24 设置平台独立的分享内容 ( setsharemedia ) public void setsharemedia(umediaobject media); media 说明 平台独立的分享内容, 可传递例如 SinaShareContent, QzoneShareContent, WeiXinShareContent 等类型的对象. 在某些情况下, 开发者可能希望用户分享到各个平台的内容不一样 开发者可以用过设置不同平台的内容来实现该功能 单独设置了分享内容的平台则使用该平台的分享内容, 没有设置的则使用通用的分享内容, 如上文中 1.23 所示 调用 setsharemedia 接口设置分平台内容的示例代码如下 : // 构建 UMImage, 1 为当前的 activity 2 为图片的链接 UMImage shareimage = new UMImage(getActivity(), "http://www.umeng.com/images/pic/banner_module_social.png"); // 设置微信平台的分享内容 // 微信平台的分享内容, 多媒体内容设置为图片, 且只能设置为一种类型 WeiXinShareContent weixincontent = new WeiXinShareContent(shareImage); weixincontent.setsharecontent(" 来自友盟社会化组件 ( SDK) 让移动应用快速整合社交分享功 能, 微信 "); weixincontent.settitle(" 友盟社会化分享组件 - 微信 "); mcontroller.setsharemedia(weixincontent); // 音乐类型 UMusic umusic = new UMusic("http://sns.whalecloud.com/test_music.mp3"); umusic.setauthor("umeng"); umusic.settitle(" 天籁之音 "); umusic.setthumb(mumimgbitmap); // 设置 QQ 平台的分享内容 QQShareContent qqsharecontent = new QQShareContent( umusic ); qqsharecontent.setsharecontent(" 来自友盟社会化组件 ( SDK) 让移动应用快速整合社交分享功能 -- QQ"); qqsharecontent.settitle("hello, qq"); qqsharecontent.settargeturl("htp://www.google.com.hk"); mcontroller.setsharemedia(qqsharecontent); 其他平台的类型请参考 SDK 中附带的文档
二 注册摇一摇相关功能 摇一摇功能独立于友盟分享 sdk, 因此该章节中的所有功能都需要依赖 SocialSDK_Shake_Lib.jar SocialSDK_ScrShot_Lib.jar 以及相关的资源 开发者需要定义一个摇一摇 Controller 来注册摇一摇相关功能 示例如下 : // 定义摇一摇控制器 UMShakeService mshakecontroller = UMShakeServiceFactory.getShakeService( com.umeng.share ); 注意 : 如果您已经使用了 UMServiceFactory.getUMSocialService( com.umeng.share, RequestType.SOCIAL) 函数来生成用于整个 SDK 的控制器, 例如该文档中的 mcontroller, 则需保证构建两个控制器的字符串一致, 例如这里为 com.umeng.share 2.1 注册摇一摇截图分享 ( registershakelistender ) public void registershakelistender(activity activity,umbaseadapter adapter, List<SHARE_MEDIA> platforms, OnSensorListener ) ; activity adapter platforms 说明用户所在的 activity 截图适配器, 不同的应用有不同的实现, 具体参考摇一摇集成文档摇一摇分享时用户可选的社交平台, 最多支持 5 个平台传感器监听器, 包含摇一摇结束 分享完成等回调接口 用户摇一摇, 然后截取当前屏幕图像进行分享 ; 注册 registershakelistender 接口的示例代码如下 : // 普通应用截屏适配器, 具体参考摇一摇集成文档 UMAppAdapter appadapter = new UMAppAdapter( YourActivity.this ); // 配置平台 List<SHARE_MEDIA> platforms = new ArrayList<SHARE_MEDIA>(); platforms.add(share_media.qzone); platforms.add(share_media.sina); // 注册摇一摇截图分享功能, mshakecontroller 在上文定义 mshakecontroller.registershakelistender(youractivity.this, appadapter, platforms, msensorlistener); /** * 传感器监听器 */ private OnSensorListener msensorlistener = new OnSensorListener() { public void onstart() {
/** * 分享完成后回调 (non-javadoc) */ public void oncomplete(share_media platform, int ecode, SocializeEntity entity) { Toast.makeText(getActivity(), " 分享完成 ", Toast.LENGTH_SHORT).show(); /** * @Description: 摇一摇动作完成后回调 (non-javadoc) */ public void onactioncomplete(sensorevent event) { Toast.makeText(getActivity(), " 用户摇一摇 ", Toast.LENGTH_SHORT).show(); ; /** * @Description: 用户点击分享窗口的取消和分享按钮触发的回调 */ public void onbuttonclick(whitchbutton button) { if (button == WhitchButton.BUTTON_CANCEL) { Toast.makeText(getActivity(), " 取消分享 ", Toast.LENGTH_SHORT).show(); else { // 点击的是分享按钮的回调函数 效果图 :
2.2 注册摇一摇打开分享面板 ( registershaketoopenshare ) public void registershaketoopenshare(final Activity activity, boolean sound) ; activity sound 用户所在的 activity 说明 摇一摇时是否开启音效, 音效资源在 res/raw/shake_sound.mp3 用户摇一摇, 然后打开分享面板 调用 registershaketoopenshare 接口的示例代码如下 : // 注册摇一摇打开分享面板, 开启摇一摇音效, mshakecontroller 在上文定义 mshakecontroller.registershaketoopenshare(youractivity.this, true); 2.3 注册摇一摇截图 ( registershaketoscrshot ) public void registershaketoscrshot(activity activity, UMBaseAdapter adapter, OnScreenshotListener ) ; activity adapter 说明用户所在的 activity 截图适配器, 不同的应用有不同的实现, 具体参考摇一摇集成文档截图监听器, 将截图回调给开发者 用户摇一摇, 然后 sdk 会截取当前平台的图像, 并且回调给开发者 调用 registershaketoscrshot 接口的示例代码如下 : UMAppAdapter appadapter = new UMAppAdapter( YourActivity.this ); // 注册摇一摇截图功能, mshakecontroller 在上文定义 mshakecontroller.registershaketoscrshot(youractivity.this, appadapter, new OnScreenshotListener() { public void oncomplete(bitmap bmp) { if (bmp!= null ) { // 对图片的处理 );
2.4 截图 ( takescrshot ) public void takescrshot(activity activity, UMBaseAdapter adapter, OnScreenshotListener ); activity adapter 说明用户所在的 activity 截图适配器, 不同的应用有不同的实现, 具体参考摇一摇集成文档截图监听器, 将截图回调给开发者 调用 takescrshot 进行截图的示例代码如下 : UMAppAdapter appadapter = new UMAppAdapter( YourActivity.this ); // 注册摇一摇截图功能, mshakecontroller 在上文定义 mshakecontroller.takescrshot(youractivity.this, appadapter, new OnScreenshotListener() { public void oncomplete(bitmap bmp) { if (bmp!= null ) { // 对图片的处理 );
三 SDK 平台配置 ( SocializeConfig ) 3.1 设置 SSO 授权 ( setssohandler ) public void setssohandler(umssohandler ssohandler); ssohandler 说明 SSO 授权的处理对象, 目前有 SinaSsoHandler, TencenWBSsoHandler, QZoneSsoHandler 设置 sso 授权, 调用 setssohandler 接口的示例代码如下 : // 设置新浪为 sso 授权, 当用户安装了新浪微博客户端后就能够使用 sso 授权. // 其他平台设置方法类似 mcontroller.getconfig().setssohandler( new SinaSsoHandler() ) ; 3.2 添加对 QQ 平台的支持 ( supportqqplatform ) supportqqplatform(activity activity, boolean editable, String targeturl) ; activity editable targeturl 说明用户所在的 activity 要分享的内容是否可编辑用户点击分享的内容时开发者希望用户跳转到的页面 设置 QQ 平台 sso 授权, 调用 supportqqplatform 接口的示例代码如下 : // 添加 QQ 支持, 并且设置 QQ 分享内容的 target url mcontroller.getconfig().supportqqplatform(youractivity.this, false, "http://www.umeng.com");
3.3 添加对微信平台的支持 ( supportwxplatform ) public UMWXHandler supportwxplatform(context, String appid, String contenturl) ; activity appid targeturl 说明用户所在的 activity 微信开放平台的 app key 用户点击分享的内容时开发者希望用户跳转到的页面 设置 QQ 平台 sso 授权, 调用 supportqqplatform 接口的示例代码如下 : // wx967daebe835fbeac 是你在微信开发平台注册应用的 App key, // 这里需要替换成你注册的 AppID String appid = "wx967daebe835fbeac"; // 微信图文分享必须设置一个 url String contenturl = "http://www.umeng.com/social"; // 添加微信平台 mcontroller.getconfig().supportwxplatform(youractivity.this, appid, contenturl);
3.4 添加微信朋友圈的支持 ( supportwxcircleplatform ) supportwxcircleplatform(context, String appid, String contenturl) ; activity appid targeturl 说明用户所在的 activity 微信开放平台的 app key 用户点击分享的内容时开发者希望用户跳转到的页面 添加微信朋友圈的支持, 调用 supportwxcircleplatform 接口的示例代码如下 : // wx967daebe835fbeac 是你在微信开发平台注册应用的 App key, // 这里需要替换成你注册的 AppID String appid = "wx967daebe835fbeac"; // 微信图文分享必须设置一个 url String contenturl = "http://www.umeng.com/social"; // 添加微信朋友圈平台 mcontroller.getconfig().supportwxcircleplatform(youractivity.this, appid, contenturl); 3.5 分享面板上的平台排序 ( setplatformorder ) public void setplatformorder (SHARE_MEDIA... platforms); platforms 说明 设置平台顺序的可变, 平台顺序会按照 platforms 的出现顺序 调用 setplatformorder 接口的示例代码如下 : // 分享面板中的平台将按照如下顺序进行排序, 微信朋友圈 人人网 新浪 QQ... mcontroller.getconfig().setplatformorder( SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.RENREN, SHARE_MEDIA.SINA, SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE, SHARE_MEDIA.WEIXIN, SHARE_MEDIA.GOOGLEPLUS, SHARE_MEDIA.EMAIL, SHARE_MEDIA.TENCENT,);
3.6 移除分享面板上的平台 ( removeplatform ) public void removeplatform(share_media... platforms); 说明 platforms 设置要移除的平台 调用 removeplatform 接口的示例代码如下 : // 分享面板中的人人网 新浪将会被移除 mcontroller.getconfig().removeplatform( SHARE_MEDIA.RENREN, SHARE_MEDIA.SINA); 3.7 获取用户选中的平台 ( getselectedplatform ) public SHARE_MEDIA getselectedplatform(); 说明 例如开发者想知道用户当前在分享面板中选择的分享平台, 则可以通过 getselectedplatform 来获取 比如用户点击的是新浪平台, 则会返回 SHARE_MEDIA.SINA. 示例代码如下 : // mcontroller.getconfig().getselectedplatform( );
3.8 关注某平台的官方微博 ( addfollow ) 接口原型 1: public void addfollow (SHARE_MEDIA platform, String fid) ; 说明 platform fid 指定平台 官方微博的 fid 设置在授权或者分享时关注官方微博, 只支持新浪微博 腾讯微博两个平台 示例代码如下 : // 关注新浪微博的官方微博 mcontroller.getconfig().addfollow(share_media.sina, 1914100420 ); 接口原型 2: public void addfollow(share_media platform,string[] fids) 说明 platform fid 指定平台 多个官方微博的 fid 设置在授权或者分享时关注多个官方微博, 只支持新浪微博 腾讯微博两个平台 示例代码如下 : // 关注新浪微博的官方微博 mcontroller.getconfig().addfollow(share_media.sina, new String[] { 1914100420, 1914100421 ); 四 线上文档 更详细的集成文档, 请移步 http://dev.umeng.com/social/android/share/quick-integration