随着现在社交网络的日益繁多,众多的社交客户端已占据了人们的大量时间,所以在我们的应用中具有一键分享的功能对提高我们产品的知名度有很大的帮助。新浪微博、腾讯微博、腾讯QQ、微信、QQ空间、豆瓣等众多知名社交站点,都是我们可以分享的去处,当然,分享功能涉及到别人第三方的权益,肯定是由他们提供SDK等支持,我们才能进行分享使用。既然分享如何重要,那么我们就该学习下Android系统如何实现分享功能。

现在在Android系统中进行分享,主要有两种手段,一种是通过系统自带的来启动分享功能;第二种是通过第三方的SDK插件进行分享;下面我们来简要介绍下两种手段:

一、Android系统启动分享功能

毫无疑问,通过系统来启动的分享功能很简单,也非常容易实现,我们直接来写个demo演示下。

1、还是先看一个布局文件,布局文件很简单,仅仅一个button按钮来触发分享功能即可。

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity">

android:id="@+id/btn_share"

android:text="@string/hello_world"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:padding="10dp"/>

2、直接看实现的代码:public class MainActivity extends ActionBarActivity {

private Button btn_share;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

btn_share = (Button) findViewById(R.id.btn_share);

btn_share.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

shareBySystem();

}

});

}

/**

* 通过系统的组件进行分享

*/

private void shareBySystem(){

Intent intent = new Intent(Intent.ACTION_SEND);

intent.setType("image/*");

intent.putExtra(Intent.EXTRA_SUBJECT,"Share");

//设置分享的内容

intent.putExtra(Intent.EXTRA_TEXT, "I have successfully)");

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(Intent.createChooser(intent, getTitle()));

}

仅仅通过系统的Intent组件来指定我们分享的内容即可,下面来看下效果图。

我们看到上面有了我们的分享功能,效果还不错,但是我们忧愁的发现,没有我们常见的QQ、新浪微博、豆瓣啊!确实,这就是它的局限性,简单,但是不一定能达到我们的特殊需求,此时,第三方的SDK火速前来救驾,用到它的时候出现了。

二、第三方组件ShareSDK的使用

我们知道,当我们分享到腾讯、新浪这些主流社交平台时,肯定需要他们提供的不同SDK来进行支持,如果我们支持十几种平台,岂不是很麻烦,怎搞?既然有需求,肯定有商机,所以这个问题早被人家给解决了,即我们即将学习的ShareSDK的使用。下面我们分步骤介绍下它的使用。

1、在mob官网进行注册一个开发者账号,然后填写相关的认证信息即可。

2、下载官方提供的SDK。我已经下载好了,最新版本v2.6.3,下载地址sdk下载地址

3、进入ShareSDK解压目录,打开“Share SDK for Android”目录,可以找到“QuickIntegrater.jar”,这个就是快速集成ShareSDK的工具,我们双击该工具,选择我们要分享的平台,填写好事例名称和包名,点击【确定】,然后系统自动给我们生成一个我们需要的demo。

4、我们赋值文件夹下的对应文件,拷贝到我们工程目录即可。

5、至此,所有需要的文件都已经拷贝到我们工程中,我们接下来就是修改Manifest文件的配置。 (1)、添加权限:

(2)、配置我们分享的主流平台的Activity文件,例如:

android:name="cn.sharesdk.tencent.qq.ResultReceiver"

android:launchMode="singleTask"

android:noHistory="true">

android:name=".wxapi.WXEntryActivity"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:configChanges="keyboardHidden|orientation|screenSize"

android:exported="true" />

android:name=".yxapi.YXEntryActivity"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:configChanges="keyboardHidden|orientation|screenSize"

android:excludeFromRecents="true"

android:exported="true"

android:launchMode="singleTop" />

android:name=".apshare.ShareEntryActivity"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:configChanges="keyboardHidden|orientation|screenSize"

android:exported="true"/>

android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"

android:configChanges="keyboardHidden|orientation"

android:windowSoftInputMode="adjustResize"

android:exported="false" >

android:name="cn.sharesdk.sina.weibo.SinaActivity"

android:theme="@android:style/Theme.Translucent.NoTitleBar">

6、我们知道我们使用第三方的SDK,他们都会要求我们提供应用的App_key进行识别,所以ShareSDK也不例外,在做第4步时,我们需要将assets文件夹下的一个xml文件进行拷贝,这个文件里面包含了我们分享的各个平台的App_key信息,例如:

7、至此,所有配置基本完成,我们只需要在代码中调用分享功能即可。private void showShare() {

ShareSDK.initSDK(this);

OnekeyShare oks = new OnekeyShare();

//关闭sso授权

oks.disableSSOWhenAuthorize();

// 分享时Notification的图标和文字  2.5.9以后的版本不调用此方法

//oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));

// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用

oks.setTitle(getString(R.string.share));

// titleUrl是标题的网络链接,仅在人人网和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);

}

然后我们在Button的onClick事件中进行响应即可。btn_share.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

showShare();

}

});

至此,我们使用ShareSDK的快速集成已经完成了。注意,ShareSDK仅仅是一个将个平台的分享集成的一个工具,我们还是要去各个社交平台去注册账户,然后注册应用信息,才能获取对应的App_key进行使用。看看效果图吧!

这个就是一个简单的快速集成介绍,更多高级功能肯定不会这么简单,比如这里的方向,弹出的对话框的样式,都是固定死的,不够灵活,我们可以自己定制,在下篇博客中在来学习下高级的用法。

作者:mr_dsw 欢迎转载,与人分享是进步的源泉!

android 分享到豆瓣,Android项目总结之社会化分享相关推荐

  1. Android项目总结之社会化分享

    Android项目总结之社会化分享 随着现在社交网络的日益繁多,众多的社交客户端已占据了人们的大量时间,所以在我们的应用中具有一键分享的功能对提高我们产品的知名度有很大的帮助.新浪微博.腾讯微博.腾讯 ...

  2. Android开发笔记(一百零五)社会化分享SDK

    社会化分享 社会化分享,指的是用户通过互联网这个媒介,把文本/图片/多媒体信息分享到该用户的交际圈,从而加快信息传播的行为.对于app来说,网络社区虽多,但用户量足够大的就那几个,所以app的社会化分 ...

  3. 基于springboot和vue的MOBA类游戏攻略分享平台【附项目源码】分享

    基于springboot和vue的MOBA类游戏攻略分享平台 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具: ...

  4. Android集成友盟社会化分享

    现在社会化分享组件有很多友推.Mob的ShareSDK.友盟社会化分享组件等,前面两种以前在做项目的时候用到过,最近的项目需要实现分享视频到各社交平台,对比了这三种组件觉得友盟社会化分享组件更适合这个 ...

  5. Android 友盟社会化分享的集成与封装

    Android 友盟社会化分享的集成与封装 分享是APP中非常高频的操作之一,在Android的开发环境中,第三方分享框架也有很多.比较流行的包括 极光社会化分享(sharesdk).友盟社会化分享( ...

  6. phonegap-百度社会化分享-andriod插件-v2.0

    技术的发展和完善,简直让人跟不上.前段时间才开放了一个百度社会化分享插件,没几个月百度的社会化分享sdk都升级了.而且增加了一些其他的特性,增加qq好友分享,优化了微信分享. 所以今天又基于新的sdk ...

  7. android sharesdk qq授权失败,项目踩坑之Share SDK指定平台分享

    现在很多应用都包含了社会化分享的功能,最近由于项目需要,所以亲自去踩了踩Mob社会化分享的坑.接下来就介绍一下怎样集成Share SDK吧!!! 一.集成ShareSDK的步骤: 1)注册ShareS ...

  8. Android网络收音机项目(源码实例分享)

    最近喜欢听广播,但是搜索了一下,苦于网上没有Android的网络收音机项目的例子,于是自己动手实现了Android网络收音机项目. 前言,由于很多网络广播使用的协议是mms,来自微软,但是androi ...

  9. Android github上优秀开源项目分类汇总

    第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.P ...

最新文章

  1. pyav Invalid data found when processing input (libav.h264: no frame!)
  2. 2021-06-04
  3. DataGrid内容的导出
  4. java并发编程之美-阅读记录10
  5. Linux man命令后的参数释义
  6. java8中LocalDate、LocalTime、LocalDateTime介绍
  7. SQL数据库语言基础之SQL Server自带数据类型、自定义数据类型与使用、创建修改数据表
  8. 网络 传输层 | UDP协议与TCP协议详解(三次握手及四次挥手、滑动窗口、拥塞控制)
  9. 这8款开源自动化测试框架,你还没用上?
  10. 各个版本eclipse官方下载地址
  11. 数据挖掘之大数据流处理
  12. cisco 2960 交换机 配置流程
  13. 欢迎各位到我的qq空间http://user.qzone.qq.com/504501772/infocenter 指点
  14. 详解for循环(各种用法)
  15. spyder和Python有什么联系?spyder有哪些功能?
  16. MFC学习总结 (67个技巧)
  17. 网易Airtest简介
  18. 关于SSD寿命问题的探讨
  19. CocosCreator项目学习系列lt;三gt;BattleCity_90tank坦克大战项目的学习
  20. 武侠乂怎么修改服务器,武侠乂操作技巧 武侠乂手游怎么操作

热门文章

  1. 使用python的butter带通滤波器时出现RuntimeWarning
  2. Python 中 异步协程 的 使用方法介绍
  3. Python 远程部署利器 Fabric2 模块
  4. oracle查看锁表进程,杀掉锁表进程
  5. 网络计算机显示10,win10电脑网络显示一个球怎么回事
  6. C++学习之路 | PTA乙级—— 1002 写出这个数 (20分)(精简)
  7. freedos能够编译c语言嘛,Freedos freedos核心源代码包含汇编和C语言代码 - 下载 - 搜珍网...
  8. WinSock I/O 模型 -- Select 模型
  9. 消息队列(3):RabbitMQ
  10. 软件工程 案例分析作业