Android集成ShareSDK第三方分享和登录
本篇记录在Android平台上如何集成ShareSDK实现第三方登陆和分享,以及其中可能会遇到的坑。
Mob官网
下载
如图选择你需要分享的平台:
集成
解压下载的文件,然后在ShareSDK for Android 里面打开到QuickIntegrater.jar(需要正确配置好Java环境变量),如图所示:
填入和你自己项目一致的项目名称和包名,之后点确定会生成一个如下图所示跟你填入项目文件同名的eclipse项目,我们需要将其集成到Android Studio里面。
在AS中,将assets文件复制到与main同级的目录,将res、libs所有文件复制到对应libs文件夹下,src里面cn与com开头的文件夹复制到与java目录下,最后在AS里面的整个工程目录如下所示:
到这里准备工作终于做完了 = =,其中重点是ShareSDK.xml文件,我们所有的平台的appid等都是在里面进行配置。这里不多说,官网有详细的介绍。我们开始在项目中,调用第三方分享和登录。
首先是第三方分享
首先初始化ShareSDk
public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();ShareSDK.initSDK(this);}
}
权限配置和activity声明
<uses-permission android:name="android.permission.GET_TASKS" /><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.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/><uses-permission android:name="android.permission.GET_ACCOUNTS"/><!-- 蓝牙分享所需的权限 --><uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<activity
android:name="com.mob.tools.MobUIShell"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize"android:screenOrientation="portrait"android:windowSoftInputMode="stateHidden|adjustResize" ><intent-filter><data android:scheme="tencent100371282" /><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.BROWSABLE" /><category android:name="android.intent.category.DEFAULT" /></intent-filter><!-- 调用新浪原生SDK,需要注册的回调activity --><intent-filter><action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /><category android:name="android.intent.category.DEFAULT" /></intent-filter><!--集成line客户端登录授权,需要添如下格式的过滤器--><intent-filter><data android:scheme="line.1477692153" /><action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.BROWSABLE" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity><!--微信分享回调 --><activity
android:name=".wxapi.WXEntryActivity"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:screenOrientation="portrait" />
选取自己需要的平台进行配置即可。
在需要的地方调用第三方分享
private void showShare() {OnekeyShare oks = new OnekeyShare();//关闭sso授权oks.disableSSOWhenAuthorize(); // title标题,印象笔记、邮箱、信息、微信、人人网、QQ和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");// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数//oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片// url仅在微信(包括好友和朋友圈)中使用oks.setUrl("http://sharesdk.cn");// comment是我对这条分享的评论,仅在人人网和QQ空间使用oks.setComment("我是测试评论文本");// site是分享此内容的网站名称,仅在QQ空间使用oks.setSite("ShareSDK");// siteUrl是分享此内容的网站地址,仅在QQ空间使用oks.setSiteUrl("http://sharesdk.cn");// 启动分享GUIoks.show(this);}
到这个地方,第三方分享基本就完成了。
第三方登陆
以QQ登陆为例
private void login() {Platform platform = ShareSDK.getPlatform(this, QQ.NAME);// 如果用户已经授权过if (platform.isAuthValid()) {// 进行登录操作Toast.makeText(this, "已经登录过了", Toast.LENGTH_SHORT).show();return;}platform.setPlatformActionListener(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {// 进行登录操作,要进行UI操作,请回调至主线程// 获取昵称String nickname = obj.get("nickname").toString();// 获取用户头像String icon = obj.get("figureurl_qq_1").toString();}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {// 如果授权错误清楚授权缓存的信息platform.removeAccount(true);}@Overridepublic void onCancel(Platform platform, int i) {}});// 开启SSO授权,如QQ登录,当手机有QQ应用时,先从客户端申请授权,无则网页授权// false标识开启SSO授权platform.SSOSetting(false);platform.showUser(null);// 请求授权platform.authorize();}
这里需要注意的是,登录的监听回调都不是主线程,所以如果有UI操作,我们要将其回调到主线程中去操作。如果要从其他的平台登录只需要修改对应的平台名称即可。如需清除授权,退出登录操作调用platform.removeAccount(true)即可。
到这里第三方登录与分享基本就已经完成了,第三方的东西本来就是为了让开发人员用着简单,所有开发文档就是最后的学习资料。最后打包的时候可能会报错,我们还需要在build.gradle里面加入:
lintOptions{checkReleaseBuilds falseabortOnError false}
更多详细的资料,请访问 官网
Android集成ShareSDK第三方分享和登录相关推荐
- iOS第三方分享,登录
今天分享的是一些第三方分享,登录 我认为的可能会遇到的坑点(国内的分享一般都是 腾讯平台.QQ平台.微博平台)(尤其是微信,QQ的这两个平台存在好多一样的方法名,基础公共类,初次使用可能会遇到好多坑, ...
- iOS - ShareSDK第三方分享(图文和视频)和登录
由于近期工作需要自己抽时间搞了一下第三方分享,这里使用的是shareSDK的第三方,在使用的过程中有一些心得和体会,特在此和大家分享一下~ 1.在经过将近一周时间的开发,终于搞定ios分享了. 2.由 ...
- Android 集成ShareSDK实现三方登录
** 前言 ** 三方登录在如今差不多已经成为每一款App必备的功能了.每次集成都会遇到各种各样的问题,今天总结一下三方登录的流程,以免忘记.现在好像还没有专门的三方登录SDK,ShareSDK和友盟 ...
- Android 集成原生google,facebook 登录分享sdk
前言 海外版app集成三方登录分享,早期采用umeng sdk,由于googleplay对用户隐私及用户数据的使用有比较严格规定.正好 umeng sdk会后台采集app信息,触发用户隐私相关政策条款 ...
- android之ShareSDK实现分享功能
现在随着科技的发达,人们交友的方式也越来越广泛,用到的app也越来越多,那么每当我们发现了好玩的好吃的好看的文章之类的,想分享到朋友圈.QQ空间.微博等如何做呢?由于这个需求越来越被需要,所以Shar ...
- Android 集成 ShareSdk 记录
MobSdk 隐私协议: https://www.mob.com/wiki/detailed?wiki=share_hgzn&id=14 集成: https://www.mob.com/wik ...
- Unity集成ShareSDK一键分享
1.首先在ShareSDK 官网下载http://mob.com/"ShareSDK社会化"分享插件,直接现在UnityforShareSDK. 2.解压,然后将ShareSDK导 ...
- Android集成Facebook第三方登录,全流程
首次接触海外项目,开发环节与测试流程刚开始搞得一头雾水,历时两周终于把登录和支付调通了,特此记录下: 不过总结下来,与国内流程不同的点,主要是测试流程,需要专门的测试账号与测试权限才能测通 首先打开开 ...
- 第三方分享和登录时assets目录下ShareSDK.xml
<?xml version="1.0" encoding="utf-8"?> <DevInfor><!--说明:1.表格中的第一项 ...
最新文章
- MySQL数据库之安装
- python处理3000个excel-Python处理Excel数据的坑,一文让你不用重复犯错
- LeetCode 462 Minimum Moves to Equal Array Elements II
- linux 下外语学习软件_学习外语如何帮助您学习编码
- linux查看空间使用情况并且清除,科技常识:Linux 查看空间使用情况的实例详解...
- 独家 | 腾讯无人车首次曝光,还把车子开上了四环
- Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换...
- 阿里AI天池大赛-贷款违约预测-基于CatBoost十折交叉验证
- 武汉大学计算机学院应时老师,肖春霞 - 教师简历 CV- 武汉大学计算机学院
- 从零到一实现一个CNI
- 他们的爱情 王小波和李银河
- 用python爬取微博评论对鹿晗、关晓彤微博进行情感分析
- 设计模式在游戏开发中的应用之观察者模式
- 【技术美术图形部分】纹理基础1.0-纹理管线
- 转行程序员需要做好哪些准备?只有这种人能成功转行ǃ
- 中国大学MOOC政府会计实务题库及答案
- Witt向量简介 §3.2:Witt向量的环结构概述
- RIA E100 操作方式
- html显示时钟 翻页 js,js css3翻页数字时钟代码
- 电感、电阻与温度的对应函数关系