本篇记录在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第三方分享和登录相关推荐

  1. iOS第三方分享,登录

    今天分享的是一些第三方分享,登录 我认为的可能会遇到的坑点(国内的分享一般都是 腾讯平台.QQ平台.微博平台)(尤其是微信,QQ的这两个平台存在好多一样的方法名,基础公共类,初次使用可能会遇到好多坑, ...

  2. iOS - ShareSDK第三方分享(图文和视频)和登录

    由于近期工作需要自己抽时间搞了一下第三方分享,这里使用的是shareSDK的第三方,在使用的过程中有一些心得和体会,特在此和大家分享一下~ 1.在经过将近一周时间的开发,终于搞定ios分享了. 2.由 ...

  3. Android 集成ShareSDK实现三方登录

    ** 前言 ** 三方登录在如今差不多已经成为每一款App必备的功能了.每次集成都会遇到各种各样的问题,今天总结一下三方登录的流程,以免忘记.现在好像还没有专门的三方登录SDK,ShareSDK和友盟 ...

  4. Android 集成原生google,facebook 登录分享sdk

    前言 海外版app集成三方登录分享,早期采用umeng sdk,由于googleplay对用户隐私及用户数据的使用有比较严格规定.正好 umeng sdk会后台采集app信息,触发用户隐私相关政策条款 ...

  5. android之ShareSDK实现分享功能

    现在随着科技的发达,人们交友的方式也越来越广泛,用到的app也越来越多,那么每当我们发现了好玩的好吃的好看的文章之类的,想分享到朋友圈.QQ空间.微博等如何做呢?由于这个需求越来越被需要,所以Shar ...

  6. Android 集成 ShareSdk 记录

    MobSdk 隐私协议: https://www.mob.com/wiki/detailed?wiki=share_hgzn&id=14 集成: https://www.mob.com/wik ...

  7. Unity集成ShareSDK一键分享

    1.首先在ShareSDK 官网下载http://mob.com/"ShareSDK社会化"分享插件,直接现在UnityforShareSDK. 2.解压,然后将ShareSDK导 ...

  8. Android集成Facebook第三方登录,全流程

    首次接触海外项目,开发环节与测试流程刚开始搞得一头雾水,历时两周终于把登录和支付调通了,特此记录下: 不过总结下来,与国内流程不同的点,主要是测试流程,需要专门的测试账号与测试权限才能测通 首先打开开 ...

  9. 第三方分享和登录时assets目录下ShareSDK.xml

    <?xml version="1.0" encoding="utf-8"?> <DevInfor><!--说明:1.表格中的第一项 ...

最新文章

  1. MySQL数据库之安装
  2. python处理3000个excel-Python处理Excel数据的坑,一文让你不用重复犯错
  3. LeetCode 462 Minimum Moves to Equal Array Elements II
  4. linux 下外语学习软件_学习外语如何帮助您学习编码
  5. linux查看空间使用情况并且清除,科技常识:Linux 查看空间使用情况的实例详解...
  6. 独家 | 腾讯无人车首次曝光,还把车子开上了四环
  7. Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换...
  8. 阿里AI天池大赛-贷款违约预测-基于CatBoost十折交叉验证
  9. 武汉大学计算机学院应时老师,肖春霞 - 教师简历 CV- 武汉大学计算机学院
  10. 从零到一实现一个CNI
  11. 他们的爱情 王小波和李银河
  12. 用python爬取微博评论对鹿晗、关晓彤微博进行情感分析
  13. 设计模式在游戏开发中的应用之观察者模式
  14. 【技术美术图形部分】纹理基础1.0-纹理管线
  15. 转行程序员需要做好哪些准备?只有这种人能成功转行ǃ
  16. 中国大学MOOC政府会计实务题库及答案
  17. Witt向量简介 §3.2:Witt向量的环结构概述
  18. RIA E100 操作方式
  19. html显示时钟 翻页 js,js css3翻页数字时钟代码
  20. 电感、电阻与温度的对应函数关系

热门文章

  1. Google PR值
  2. 用ShaderGraph实现卡通的沙滩泡沫效果
  3. 我为什么坚持这么多年写博客
  4. web前端目前的就业形势_2020年Web前端的前景及就业形势
  5. 《那一世》——仓央嘉措
  6. 最合理化的中小型企业桌面虚拟化解决方案—Infortrend GSe Pro 100
  7. 初来北漂,黑中介“诈”道,58、赶集租房网缺
  8. Git Stash 贮藏命令
  9. MySQL高阶教程索引
  10. 我等到花儿也谢 - 张学友 - 真爱