Android中的ShareSDK学习

一. 什么是ShareSDK

ShareSDK是一种社会化分享组件,为iOS、Android、WP8 的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台。 —— [ 百度百科 ]

二. 主要功能

  • 第三方登录
  • 一键分享
  • 短链转换
  • 好友关系
  • 社会化数据化统计
  • 评论和赞
  • 全面数据统计

三. ShareSDK安装包及配置

1. 获取AppKey

访问mob官网注册账号–点击头像进入“后台中心”–选择shareSDK–添加应用–获取AppKey。

2.下载ShareSDK

点击进入mob官网下载最新版本的sdk安装包

3. 在各大社交平台注册

如果你想分享到新浪微博,就必须在新浪开放平台上将这个app注册一下,不然新浪是不会无缘无故让你分享的;分享到微信和QQ的道理是一样的。

参考链接:

ShareSDK各社交平台申请APPkey 的网址及申请流程汇总:http://bbs.mob.com/forum.php?mod=viewthread&tid=275


四. 使用ShareSDK的分享功能

1. 导入SDK到工程文件

打开Android Studio,先新建一个名为ShareDemo的project,然后开始导入sdk。
可以用复制jar包的方式来做

下面我们以新建的项目为例:

首先我们先将sample下的libs下的jar包全选复制到新建的项目app的libs下

如上图所示jar包虽然复制进来但是还没build进入工程
注意:选择jar包然后右键选择 add as library

添加完之后如下图所示:

其次,将项目名称sample下的assets复制到src->main下

再有就是sample下的资源res文件夹了,这里有必要说明下直接将res下的所有资源文件夹全选复制到自己项目的src->main->res下,不需要修改文件夹的名称

最后将sample下生成的src下的cn的快速集成的代码包复制进来,注意下图的目录

2. 配置AndroidManifest.xml

(1)首先是添加权限

<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"/>

(2)添加ShareSDK必要的activity(在application节点下注册下面的Activity)

<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="平台AppId" /><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.BROWSABLE" /><category android:name="android.intent.category.DEFAULT" /></intent-filter>
</activity>

注意: MobUIShell的路径是固定的,一定要在“cn.sharesdk.framework”下,因为它在Share-Core中。

将上面代码平台AppId处修改成申请到的AppId即可 。

如果项目集成了微信,还需要添加以下WXEntryActivity,不然的话,mob后台无法做微信的分享统计:(在工程的包下新建wxapi目录再放置WXEntryActivity)
WXEntryActivity.java

package com.smyhvae.sharedemo.wxapi;
import android.content.Intent;
import android.widget.Toast;
import cn.sharesdk.wechat.utils.WXAppExtendObject;
import cn.sharesdk.wechat.utils.WXMediaMessage;
import cn.sharesdk.wechat.utils.WechatHandlerActivity;
/** 微信客户端回调activity示例 */
public class WXEntryActivity extends WechatHandlerActivity {/*** 处理微信发出的向第三方应用请求app message* <p>* 在微信客户端中的聊天页面有“添加工具”,可以将本应用的图标添加到其中* 此后点击图标,下面的代码会被执行。Demo仅仅只是打开自己而已,但你可* 做点其他的事情,包括根本不打开任何页面*/public void onGetMessageFromWXReq(WXMediaMessage msg) {Intent iLaunchMyself = getPackageManager().getLaunchIntentForPackage(getPackageName());startActivity(iLaunchMyself);}/*** 处理微信向第三方应用发起的消息* <p>* 此处用来接收从微信发送过来的消息,比方说本demo在wechatpage里面分享* 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信* 客户端会通过这个方法,将这个信息发送回接收方手机上的本demo中,当作* 回调。* <p>* 本Demo只是将信息展示出来,但你可做点其他的事情,而不仅仅只是Toast*/public void onShowMessageFromWXReq(WXMediaMessage msg) {if (msg != null && msg.mediaObject != null&& (msg.mediaObject instanceof WXAppExtendObject)) {WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show();}}
}

接下来配置的是微信回调activity的配置(如果不需要的平台可以不配置的)

<!--微信分享回调--><activity
            android:name=".wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar"/>

3. 添加代码

(1)在项目的入口Activity,在其onCreate方法中插入下面的代码进行初始化

ShareSDK.initSDK(this);

(2)在项目Activity的onDestroy方法中第一行中加入

ShareSDK.stopSDK(this);

(3)调用onekeyshare的界面分享

private void showShare() {
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize(); // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间等使用
oks.setTitle("标题");
// titleUrl是标题的网络链接,QQ和QQ空间等使用
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
oks.setText("我是分享文本");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
//oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl("http://sharesdk.cn");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("我是测试评论文本");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite(getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl("http://sharesdk.cn");// 启动分享GUI
oks.show(this);
}

这是官方给出的配置onekeyshare的代码

(4)activity_main.xml布局文件(添加Button)

<Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="分享"/>

(5)自己写个showShare()方法,里面onekeyshare的对象调用分享参数,调用show方法启动我们默认的界面;

五. 运行效果

到此结束~

参考链接:

http://wiki.mob.com/sdk-share-android-3-0-0/

Android中的ShareSDK学习相关推荐

  1. android sharesdk 使用教程,Android中使用ShareSDK学习

    一.基本的步骤 1.首先,我们在mob官网上获取App Key和App Secret. 1).在登录,或者注册填写完一些基本的信息之后,点击右上角进入后台. 2).此时注意,不同SDK后台创建应用的A ...

  2. android中的深度学习——快速风格迁移

    ============= 这是一个图片处理APP,里面使用了Opencv.深度学习.MVVM.Databinding.RxJava.各种设计模式等等,在后面一段时间我会写一系列博客来一步步剖析这个项 ...

  3. Android中Service深入学习

    概述 1.当用户在与当前应用程序不同的应用程序时,Service可以继续在后台运行. 2.Service可以让其他组件绑定,以便和它交互并进行进程间通信. 3.Service默认运行在创建它的应用程序 ...

  4. Android 中的WiFi学习笔记(转载)----WIFI启动 代码流程走读---网络连接流程

    Android的WiFi 我们通常看到WiFi的守护进程wpa_supplicant在我们的ps的进程列表中,这个就是我们的wifi守护进程.wpa_supplicant在external/wpa_s ...

  5. Android中图表AChartEngine学习使用与例子

    很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果.基本有以下几种方法: 1:可以进行android  api进行draw这样的话,效率比较低 2:使用开源绘表引擎,这样效率比 ...

  6. 我的Android进阶之旅------gt;Android中编解码学习笔记

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

  7. android音视频工程师,音视频学习 (十三) Android 中通过 FFmpeg 命令对音视频编辑处理(已开源)...

    ## 音视频学习 (十三) Android 中通过 FFmpeg 命令对音视频编辑处理(已开源) ## 视音频编辑器 ## 前言 有时候我们想对音视频进行加工处理,比如视频编辑.添加字幕.裁剪等功能处 ...

  8. Android中堆unlink利用学习

    前言 最近学习了堆的管理,如何进行unlink利用.发现大多数文章在讲解利用unlink进行任意地址写时没有解释得很透彻(也可能是我比较愚钝吧(╯﹏╰)),看得是云里雾里:-(.....直到看到了sh ...

  9. 42.Android之ListView中ArrayAdapter简单学习

    今天学习下Android中ListView关于ArrayAdapter数据绑定, 废话少说直接上代码. 改下布局文件: 1 <?xml version="1.0" encod ...

最新文章

  1. Python环境配置保姆教程(Anaconda、Jupyter、GPU环境)!
  2. html css背景图片精灵技术,HTML入门学习笔记--CSS背景和精灵图(5)
  3. GalHttprequest类库简介——android平台上的一个轻量级的http网络请求及缓存框架
  4. 条件、循环、函数定义 练习(2017.9.12)
  5. 关于年终奖励的扣税算法BUG
  6. 杭电2062java实现
  7. if else 简写_15+ JS简写骚操作,让你的代码“秀”起来??
  8. JavaScript实现数乘以二multiplyByTwo算法(附完整源码)
  9. GDCM:读取显式长度SQIVR的测试程序
  10. 简陋版:基于python的自动化测试框架开发
  11. 【深度好文】过了30岁,做技术开发、工程师还有前途吗?
  12. LeetCode刷题 --杂篇 --数组,链表,栈,队列
  13. Full-Mesh 帧中继
  14. JAVA定时任务的简单实现
  15. 【滤波器】基于matlab GUI低通+带通+高通FIR与IIR滤波器设计【含Matlab源码 360期】
  16. 【Scratch】青少年蓝桥杯_每日一题_3.01_画莲花
  17. Stata:如何生成天马行空的空间权重矩阵?
  18. 平凡的人,做不平凡的事
  19. 甲骨文服务器操作系统,甲骨文年内完成操作系统移换 Linux将成主要平台
  20. 仅300员工却垄断全球,几亿一台还供不应求

热门文章

  1. python存csv中文乱码问题
  2. 长短时记忆网络(LSTM)负荷预测项目(matlab)
  3. 寺库拟私有化:报价较发行价缩水75%,趣店为第一大股东
  4. VB.NET语法基础学习
  5. 计算机科学引论试题,内工大计算机科学引论在线测试题.pdf
  6. 网站长尾关键词的挖掘与优化
  7. mysql允许外网访问配置
  8. Python之urlparse模块
  9. 基于Java毕业设计校园面包超市系统源码+系统+mysql+lw文档+部署软件
  10. 主机坏了,150能解决的问题我花了近8000