ShareSDK Android SDK API
获取用户信息接口(showUser)
//cn.sharesdk.framework
/*** 获取用户信息* @param account 获取指定账号的用户信息,直接设置成null*/
public void showUser(String account)
示例代码
//设置授权登录的平台
Platform plat = ShareSDK.getPlatform(QQ.NAME);
//授权回调监听,监听oncomplete,onerror,oncancel三种状态
plat.setPlatformActionListener(platformActionListener);
//抖音登录适配安卓9.0
//ShareSDK.setActivity(MainActivity.this);
plat.showUser(null);
授权接口(authorize)
//cn.sharesdk.framework
/*** 第三方授权*/ public void authorize()
示例代码
Platform plat = ShareSDK.getPlatform(Facebook.NAME);
//授权回调监听,监听oncomplete,onerror,oncancel三种状态
plat.setPlatformActionListener(new PlatformActionListener() {public void onError(Platform platform, int i, Throwable throwable) {//失败的回调,授权失败的回调 platform:平台对象,i:表示当前的动作(9表示分享),throwable:异常信息 }public void onComplete(Platform platform, int i, HashMap arg2) {//分享成功的回调}public void onCancel(Platform platform, int i) {//取消分享的回调}});
//抖音登录适配安卓9.0
//ShareSDK.setActivity(this);
plat.authorize();
其他辅助接口
除此方法,ShareSDK还提供一些辅助方法,如下所示:
plat.removeAccount(true) | 移除授权状态和本地缓存,下次授权会重新授权获取新的授权信息 |
plat.SSOSetting(false) | SSO授权,传false默认是客户端授权,没有客户端授权或者不支持客户端授权会跳web授权;设置成true是关闭SSO授权(关闭客户端授权) |
plat.setPlatformActionListener(this) | 授权回调监听,监听oncomplete,onerror,oncancel三种状态 |
plat.isAuthValid() | 判断是否已经存在授权状态,可以根据自己的登录逻辑设置 |
ShareSDK.setActivity(this); | 抖音登录适配安卓9.0 |
判断客户端是否安装接口(isClientValid)
ShareSDK 3.10.7版本开始支持
//cn.sharesdk.framework
/*** 授权回调* @param callback 回调结果*/ public void isClientValid(final ShareSDKCallback<Boolean> callback)
示例代码
Platform plat = ShareSDK.getPlatform(Facebook.NAME);plat.isClientValid(new ShareSDKCallback<Boolean>() {@Overridepublic void onCallback(Boolean aBoolean) {//判断是否存在授权凭条的客户端,true是有客户端,false是无客户端
}
});
授权回调接口(setPlatformActionListener)
//cn.sharesdk.framework
/*** 授权回调* @param callback 回调结果*/
public void setPlatformActionListener(PlatformActionListener callback)
示例代码
qzone.setPlatformActionListener(new PlatformActionListener() {public void onError(Platform platform, int i, Throwable throwable) {//授权失败的回调 platform:平台对象,i:表示当前的动作(9表示分享),throwable:异常信息 }public void onComplete(Platform platform, int i, HashMap arg2) {//授权成功的回调 //输出所有授权信息arg0.getDb().exportData();}public void onCancel(Platform platform, int i) {//授权取消的回调 }});
一键分享接口(show)
//cn.sharesdk.onekeyshare
/*** 一键分享* @param context 分享参数*/
public void show(Context context)
示例代码
final OnekeyShare oks = new OnekeyShare();//指定分享的平台,如果为空,还是会调用九宫格的平台列表界面if (platform != null) {oks.setPlatform(platform);}// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用oks.setTitle("标题");// titleUrl是标题的网络链接,仅在Linked-in,QQ和QQ空间使用oks.setTitleUrl("http://sharesdk.cn");// text是分享文本,所有平台都需要这个字段oks.setText("我是分享文本");//分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");// url仅在微信(包括好友和朋友圈)中使用oks.setUrl("http://sharesdk.cn");//分享回调oks.setCallback(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {// 分享成功回调 } @Overridepublic void onError(Platform platform, int i, Throwable throwable) {// 分享失败回调 platform:平台对象,i:表示当前的动作(9表示分享),throwable:异常信息 }@Overridepublic void onCancel(Platform platform, int i) {// 分享取消回调 }});// 启动分享oks.show(MobSDK.getContext());
指定平台单独分享接口(share)
//cn.sharesdk.framework
/*** 单独分享* @param params 分享参数*/
public void share(Platform.ShareParams params)
示例代码
下面分别使用Twitter和QQ作为例子,举例如何利用此方法实现分享功能。
Twitter分享
ShareParams sp = new ShareParams();
sp.setText("测试分享的文本");
sp.setImagePath("/mnt/sdcard/测试分享的图片.jpg");
Platform tw = ShareSDK.getPlatform(Twitter.NAME);
// 设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理UI操作)
tw.setPlatformActionListener (new PlatformActionListener() {public void onError(Platform platform, int i, Throwable throwable) {// 失败的回调, platform:平台对象,i:表示当前的动作(9表示分享),throwable:异常信息 }public void onComplete(Platform platform, int i, HashMap arg2) {// 分享成功的回调}public void onCancel(Platform platform, int i) {// 取消分享的回调}
});
// 执行图文分享
tw.share(sp);
ShareParams sp = new ShareParams();
sp.setTitle("测试分享的标题");
sp.setTitleUrl("http://sharesdk.cn"); // 标题的超链接
sp.setText("测试分享的文本");
sp.setImageUrl("http://www.someserver.com/测试图片网络地址.jpg");
sp.setSite("发布分享的网站名称");
sp.setSiteUrl("发布分享网站的地址");
Platform qq = ShareSDK.getPlatform (QQ.NAME);
// 设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理UI操作)
qq.setPlatformActionListener (new PlatformActionListener() {public void onError(Platform platform, int i, Throwable throwable) {// 失败的回调,platform:平台对象,i:表示当前的动作(9表示分享),throwable:异常信息 }public void onComplete(Platform platform, int i, HashMap arg2) {// 分享成功的回调}public void onCancel(Platform platform, int i) {// 取消分享的回调}
});
// 执行图文分享
qq.share(sp);
具体各个平台具体所需参数可以参考不同平台的详细参数说明;
ShareSDK的每一个平台都有自己的ShareParams,由于平台差异,不同平台之间的ShareParams字段数量不一样,但是同样名称的字段都表示相同的含义,下面是当前ShareSDK所有平台ShareParams的字段的名称和代表的含义:
字段名称 | 描述 |
---|---|
text | 待分享的文本 |
imagePath | 待分享的本地图片。如果目标平台使用客户端分享,此路径不可以在/data/data下面 |
filePath | 待分享的文件路径。这个用在Dropbox和Wechat中 |
title | 分享内容的标题 |
notebook | 存放笔记的笔记本,如果不存在,会创建。一般用在印象笔记等“笔记类”平台中 |
stack | 印象笔记中的字段,用于归类笔记本 |
resource | 印象笔记中的字段,数组,暂时支持String类型和File类型的元素。如果想一次发送多个文本和图片,需要使用这个字段 |
tags | 标签,数组,部分平台支持为分享内容设置标签,可以使用这个字段 |
isPublic | 印象笔记和flickr的字段,表示是否公开 |
isFriend | flickr和VK的字段,表示是否公开给自己的朋友 |
isFamily | flickr的字段,表示是否公开给自己的家人 |
safetyLevel | flickr的字段,表示安全级别:1为安全级、2为辅导级、3为限制级 |
contentType | flickr的字段,表示相册类型:1为相片、2为屏幕截图、3为其他 |
hidden | flickr的字段,表示是否隐藏图片 |
venueName | foursquare的字段,表示分享位置的名称 |
venueDescription | foursquare的字段,表示分享位置的描述 |
latitude | 分享位置的维度 |
longitude | 分享位置的经度 |
imageUrl | 待分享的网络图片 |
comment | 对分享内容的评价。区别于text,评论一般共应用的用户自己填写,部分平台支持此字段 |
titleUrl | 分享内容标题的链接地址 |
url | 分享内容的url、在微信和易信中也使用为视频文件地址 |
address | 邮箱地址或者短信电话号码,一般在邮箱或者短信中使用 |
site | QQ空间的字段,标记分享应用的名称 |
siteUrl | QQ空间的字段,标记分享应用的网页地址 |
gropuId | VK的字段,表示图片所属的组ID。如果不设置此字段,ShareSDK会将组ID设置为ShareSDK所在的组 |
shareType | 微信和易信的字段,分享内容的类型: 分别为Platform.SHARE_TEXT(分享文本), Platform.SHARE_IMAGE(分享图片), Platform.SHARE_WEBPAGE(分享网页,既图文分享), Platform.SHARE_MUSIC(分享音频), Platform.SHARE_VIDEO(分享视频), Platform.SHARE_APPS(分享应用,仅微信支持), Platform.SHARE_FILE(分享文件,仅微信支持) Platform.SHARE_EMOJI(分享表情,仅微信支持) |
musicUrl | 微信和易信的字段,分享音频时的音频文件网络地址 |
imageData | 微信和易信的字段,各类分享内容中的图片bitmap对象,可以替代imagePath或者imageUrl |
autdor | 有道云笔记的字段,表示分享内容的作者 |
customFlag | 自定义分享标签 |
上述字段中和本地路径有关的,全部使用“Path”结尾,如imagePath;和网络路径有关的,使用“Url”结尾,如imageUrl。本地图片最好使用后缀名,否则POST文件时,可能无法正确计算文件的MIME值,从而导致发送失败。
一键分享回调(setCallback)
//cn.sharesdk.onekeyshare
/*** 一键分享回调* @param callback 回调结果*/
public void setCallback(PlatformActionListener callback)
示例代码
oks.setCallback(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {// 分享成功回调} @Overridepublic void onError(Platform platform, int i, Throwable throwable) {// 分享失败回调 platform:平台对象, i:表示当前的动作(9表示分享),throwable:异常信息}@Overridepublic void onCancel(Platform platform, int i) {// 分享取消回调 }});
指定平台单独分享回调(setPlatformActionListener)
//cn.sharesdk.framework
/*** 单独分享回调* @param callback 回调结果*/
public void setPlatformActionListener(PlatformActionListener callback)
示例代码
qzone.setPlatformActionListener(new PlatformActionListener() {public void onError(Platform platform, int i, Throwable throwable) {//失败的回调, platform:平台对象, i:表示当前的动作(9表示分享),throwable:异常信息}public void onComplete(Platform platform, int i, HashMap arg2) {//分享成功的回调 }public void onCancel(Platform platform, int i) {//取消分享的回调 }});
ShareSDK Android SDK API相关推荐
- Android SDK|API
Android SDK|API http://www.android-doc.com/reference/packages.html posted on 2018-03-30 21:39 飞狐爷 阅读 ...
- 大疆Android SDK API知识点讲解及课程最终demo展示
大疆Android SDK API知识点讲解及课程最终demo展示 大疆Android SDK课程--主要讲解Android开发环境的搭建.如何连接无人机.获取摄像头信息以及如何导入高德地图到APP当 ...
- android sdk api没有x86,安卓libsec.so有x86版本吗?
下面是用x86模拟器出现的错误: 09-11 10:01:37.016 2668-2668/com.example.mahaiting.myapplication E/AndroidRuntime: ...
- 文件目录Android SDK目录结构
每日一贴,今天的内容关键字为文件目录 打开下载下来的SDK,会发明里头有很多寄存不同文件的文件夹,如下图所示,那么这些文件夹里到底寄存的是什么呢,下面就对这些内容,进行讲授. 1. add ...
- Android SDK目录结构
打开下载下来的SDK,会发现里面有许多存放不同文件的文件夹,如下图所示,那么这些文件夹里到底存放的是什么呢,下面就对这些内容,进行讲解. 1. add-ons 这里面保存着附加库,比如Go ...
- ##android sdk 文件目录含义介绍
Eclipse中通过,通过快捷键[ ctrl+按下鼠标],就可以查看源码. 但Eclipse默认设置配置下,我们看不到源码,会出现source not found 界面(如图). 所以我们要手动配置一 ...
- Android SDK安装、环境变量配置
目录 安装sdk步骤 一.下载安装sdk tools 1.打开网址: AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Grad ...
- 极光推送服务器端文档,Android SDK 集成指南
极光统计 Android SDK 集成指南 使用提示 本文是JAnalytics Android SDK 标准的集成指南文档. 匹配的 SDK 版本为:v1.0.0及以后版本. 如果您想要快速地测试. ...
- 【已解决】ADT中通过Android SDK Manager去安装x86的image时无法下载
[已解决]ADT中通过Android SDK Manager去安装x86的image时无法下载 [问题] 折腾: [已解决]ADT中调试Android项目但是无法打开对应的AVD即没有弹出对应的And ...
最新文章
- 基于互联网云脑架构分析百度的现状与未来
- MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比
- 【小白学习C++ 教程】十四、C++ 中预处理器
- 太强了!用200个LED做一个智能手表
- Android 闹钟最终版
- matlab 色彩模型,常见色彩模型的相互转换(基于MATLAB).doc
- 使用maven 创建Quartz 任务示例_01
- SQL Server存储过程作业(二)
- pyspark 条件_删除pyspark中特定条件下的特定行
- 调用css样式是不调用某个属性,CSS选择器可以引用另一个选择器属性吗?
- 让云触手可及——微软云计算解决方案白皮书
- 家里网连github慢怎么办_果农问事台:果树拉枝后枝条梢头有上翘生长怎么办?...
- 反爬虫策略的应对方法汇总
- google退出中国市场是战略性错误
- impala hive随机抽样方法
- Apache Flink®极简教程: 架构及原理 Stateful Computations over Data Streams
- 二元二次方程例题_二元二次方程组练习题及答案.doc
- win7共享中心服务器运行失败,Win7系统网络与共享中心无法打开怎样解决?
- C/C++犯二程度计算
- 用Python实现QQ找茬游戏外挂工具
热门文章
- 大数据之linux虚拟机的复制以及环境配置
- python和大数据有什么关系
- C语言字符串类型定义(二维字符数组模拟连续存储多个字符串)(以小凡点名为例)
- eva破晓服务器无响应,EVA破晓黑屏怎么办 EVA破晓黑屏、已停止解决方案[图]
- WV.12-枚举-平面点的对称点
- 阿里云CentOS环境之-实战docker集群swarm(十五)
- Mycat JVM appears hung: Timed out waiting for signal from JVM.
- 2015年百度之星程序设计大赛 - 资格赛【题解】
- iOS开发系列--打造自己的“美图秀秀”
- JAVA版不祥之兆等级怎么看,袭击队长 - Minecraft Wiki,最详细的官方我的世界百科...