社会化分享 Android 组件 用户手册 (2.0.0 版 ) 发布日期 : 2013 年 9 月 6 日 百度开发者中心 ( 版权所有, 翻版必究 )
目录 第 1 章 概述... 3 第 2 章 运行环境... 3 第 3 章 使用说明... 3 3.1 新建工程... 3 3.2 引入社会化分享 JAR 包... 4 3.3 配置 ANDROIDMANIFEST.XML... 4 3.4 配置文件说明... 4 3.5 关于微信分享的问题... 5 3.6 新浪微博 SSO 支持... 6 3.7 腾讯 SSO 支持... 6 第 4 章 接口说明... 6 第 5 章 代码示例... 7 5.1 初始化社交分享组件... 7 5.2 用户授权... 7 5.3 单平台分享... 7 5.4 显示分享菜单页面... 7 5.5 分享到微信... 7 第 6 章 显示效果截图... 8 第 7 章 文档变更说明... 10 百度开发者中心 2
第 1 章概述 社会化分享 Android 组件基于百度社会化分享服务, 封装了新浪微博 开心网 腾讯微博和 QQ 空间等平台的授权及分享功能, 同时提供了 API 接口调用及本地操作界面支持 该组件集成简便, 可以轻松实现多平台分享功能 下载解压组件 SDK 包, 文件目录结构如下 : lib doc demo 名称 说明百度社会化分享 android 组件包百度社会化分享组件接口说明文档百度社会化分享组件 Demo 工程 用户手册 百度社会化分享组件用户手册 第 2 章运行环境 适用于 Android 2.1 及以上的系统版本 第 3 章使用说明 3.1 新建工程 创建一个工程名为 Sample 的 android 工程 为方便起见, 创建项目时全部使用默认设置 百度开发者中心 3
3.2 引入社会化分享 jar 包 将 lib\ 下的 Baidu-SocialShare-SDK-Android-2.0.0.jar 包复制到 Sample 的 libs 目录下 3.3 配置 AndroidManifest.xml /> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.access_wifi_state" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.write_external_storage" <uses-permission android:name="android.permission.write_settings" /> <uses-permission android:name="android.permission.read_phone_state" /> <uses-permission android:name="android.permission.access_fine_location"/> 说明 : 这些权限包括允许您的项目和 Social Share SDK 获取连接网络的权限 获取您的设备网络状态 的权限 实现 https 安全连接的权限和本地数据卡的写权限, 获取手机状体, 以及读取位置信 息的权限 一般应用都会自己设置好这些权限 3.4 配置文件说明 1. 配置文件采用 json 格式, 请保存在 assets 目录, 命名为 config.json 百度开发者中心 4
2. 配置文件项目说明 1) client_ids( 类型 JSONObject):client_ids 主要用来保存注册在各个分享平台的 apikey 或者 AppID 详细格式问题请参考 demo 中的 config.json 其中 baidu 为必填项目, 必须在百度开发者中心申请 http://developer.baidu.com/dev#/create/client 2) client_names( 类型 JSONObject):client_names 主要用来保存分享到各个分享平台中需要显 示的应用名称, 目前只有分享到 QQ 好友使用该参数 3) supported_medias( 类型 JSONArray):supported_meidas 主要用来保存需要分享到哪些平台, 用于 UI 组件的显示 目前百度社会化分享组件支持新浪微博 (sinaweibo), 腾讯微博 (qqweibo), 人人网 (renren), 开心网 (kaixin),qq 空间 (qqdenglu),qq 好友 (qqfriend), 微信 (weixin), 微信朋友圈 (weixin_timeline), 邮件 (email), 短信 (sms) 详细的设置方法, 请参考 demo 中 的 config.json 3. 如何获取配置项目 SocialConfig.getInstance(this).getClientId(MediaType.BAIDU); 更加详细的 SocialConfig 类的调用方式请参考 doc 中的 SocialConfig 相应的 javadoc 3.5 关于微信分享的问题 开发者需要到微信的开放平台 (open.weixin.qq.com), 注册 apk 的 package-name 和 package-sign, 其中 package-sign 是 apk 包签名的 MD5 值, 生成签名的具体方法, 可以参考微信开放平台的 FAQ(http://open.weixin.qq.com/faq/?lang=zh_CN) 1. 在代码中的包名目录下, 添加如下代码 : 2. 在 WXEntryActivity 中添加如下代码 : public class WXEntryActivity extends WeixinShareActivity { } @Override protected boolean handleintent() { if (super.handleintent()) { return true; } else { return false; } } 3. 在 AndroidManifest.xml 中配置如下 activity <!-- 用户微信回调的 activity --> <activity android:name=".wxapi.wxentryactivity" android:label="@string/app_name" 百度开发者中心 5
android:exported="true" android:theme="@android:style/theme.translucent.notitlebar.fulls creen"> </activity> 4. 只有在微信开放平台通过审核的应用才能成功分享到微信, 同时在微信开放平台上填写相应的包名 和包签名 ( 具体的方法见微信开放平台 ) 在未通过审核的情况下, 可以先退出微信账号, 然后进 行分享操作, 如果出现微信登录界面, 则说明功能可用, 只需等待审核通过后, 即可正常分享到微 信了 5. 在第一次进行微信分享的时候, 微信需要验证包签名等信息, 反应速度会有些慢, 请耐心等待 3.6 新浪微博 SSO 支持 首先手机中必须安装新浪微博 3..0 以上版本才能够支持新浪微博单点登录 1. 在 androidmanifest.xml 中添加如下配置 : <activity android:name="com.baidu.cloudsdk.social.oauth.socialoauthactivity" android:exported="true" android:screenorientation="portrait" android:theme="@android:style/theme.translucent.notitlebar.fullscreen"> </activity> 2. 代码中需要传入在新浪开放平台申请应用的的 app key 这个新浪应用必须已经托管在百度开放平 台注册移动应用下面 3.7 腾讯 SSO 支持 首先手机中必须安装腾讯手机 QQ 4.1.0 以上版本才能够支持腾讯单点登录 1. 在 androidmanifest.xml 中添加如下配置 : <activity android:name="com.baidu.cloudsdk.social.oauth.socialoauthactivity" android:exported="true" android:screenorientation="portrait" android:theme="@android:style/theme.translucent.notitlebar.fullscreen"> </activity> 2. 代码中需要传入在腾讯开放平台申请应用的的 app key 这个腾讯应用必须已经托管在百度开放平 台注册移动应用下面 第 4 章接口说明 详细说明请参考下载包中 doc 目录下的接口说明文档 百度开发者中心 6
第 5 章代码示例 5.1 初始化社交分享组件 开发者需要在 baidu 开发者中心注册应用, 获取 app_key 后做为参数传入 : String clientid=socialconfig.getinstance(this).getclientid(mediatype.baidu); SocialShare share = SocialShare.getInstance(this,clientID); 5.2 用户授权 用户需要调用下面接口完成相关平台的授权工作 Bundle bundle = new Bundle(); bundle.putstring(socialconstants.param_client_id,clientid); bundle.putstring(socialconstants.param_media_type, MediaType.SINAWEIBO.toString()); Intent intent = new Intent(this, SocialOAuthActivity.class); intent.putextras(bundle); SocialOAuthActivity.setListener(mAuthListener); this.startactivity(intent); 说明 : SocialOAuthActivity 需要在 AndroidManifest.xml 中声明参考 3.6,3.7 中的说明 5.3 单平台分享 // 构造分享实体对象 ShareContent content = new ShareContent(); content.setcontent( CONTENT");// 分享的文字内容 content.setlinkurl( URL );// 分享的 url content.setimageuri( imageurl );// 分享的图片 uri 可以为本地地址也可以为网络地址 // 调用分享接口 SocialShare.getInstance(activity.this,clientID).share(content,mShareMedi atype, msharecontentlistener,true); 5.4 显示分享菜单页面 // 构造分享实体对象 ShareContent content = new ShareContent(); content.setcontent( CONTENT");// 分享的文字内容 content.setlinkurl( URL );// 分享的 url content.setimageuri( imageurl );// 分享的图片 uri 可以为本地地址也可以为网络地址 SocialShare.getInstance(this, clientid).show(getwindow().getdecorview(),mpagecontent,uiwidgetstyle.default, mdefaultlistener); 5.5 分享到微信 如果想使用此功能, 开发者需要到微信开放平台申请应用, 并注册对应 apk 的 package name 和 package sign 示例程序中我们已经完成了注册, 对应的相关应用信息如下 : appid package-name package-sign wxfc87c64e5e4fcc66 com.share.baidudemo 1f3c0c3113a6457a906012f807297ebd 百度开发者中心 7
在 demo 工程中提供了生成好的 debug.keystore 文件, 用户如果想直接使用 demo 程序进行分享到微信的 操作, 在打包生成 apk 的时候需要在 eclipse 里面特别指定 debug.keystore 文件的路径 : 第 6 章显示效果截图 1. 主题风格的分享菜单 2. 类 ios 系统风格分享菜单 : 百度开发者中心 8
3. 分享编辑页面 : 百度开发者中心 9
4. 平台授权页面 : 第 7 章文档变更说明 序号 版本号 变更内容说明 变更日期 1 V1.0.0 初稿 2013/04/07 2 V1.1.0 添加微信分享 平台配置和 UI 个性化设置相关说明 2013/05/10 3 V1.2.0 添加腾讯微博和新浪 SSO 的支持说明 2013/05/24 4 V1.3.0 添加分享到短信的邮件的功能 完善分享失败时候逻辑处理 2013/06/04 5 V1.4.0 支持分享到人人网, 微信支持分享大图, 修改了 https 请求过程中在一些 android 低版本中出现的问题 2013/07/03 6 V1.4.1 增加了百度贴吧, 修改了分享邮件时图片为必选项的问题 2013/07/16 7 V2.0.0 重构版本社会化分享组件说明文档 2013/09/06 百度开发者中心 10