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

随着现在社交网络的日益繁多,众多的社交客户端已占据了人们的大量时间,所以在我们的应用中具有一键分享的功能对提高我们产品的知名度有很大的帮助。新浪微博、腾讯微博、腾讯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组件来指定我们分享的内容即可,下面来看下效果图。

1444497504360132.png

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

二、第三方组件ShareSDK的使用

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

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

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

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

1444497542135627.png

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

1444497563138187.png

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信息,例如:

1444497648423002.png

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进行使用。看看效果图吧!

1444497718133394.png

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android实现自动横竖屏切换,android 中实现横竖屏切换【原创】

我们在使用android手机的时候,发现一些应用有横竖屏切换的功能,一般实现有以下几种方法:一、设置1.通过XML设置横竖屏切换在项目的 AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,它有以下几个…

超级管理器Android,超级文件管理器app

详情超级文件管理器app,一款帮助你管理手机内存的软件,还可以重命名,移动,删除文件,在Android平台上完美运行,并能够与其他OI系列软件结合使用! 能快速地查找到目标文件,十分方便用户管理自己手…

android miui ios,从iOS到Android——小米11及小米生态实际使用体验

从iOS到Android——小米11及小米生态实际使用体验2021-02-22 15:29:5693点赞155收藏131评论创作立场声明:文中的设备均为自购,无任何特定立场。2021年2月10日,我的iPhoneX手机突然黑屏,拿到Apple Store检测,经诊断是屏…

p50会搭载鸿蒙吗,华为Mate40和华为P50也会搭载鸿蒙,华为Mate30跌至白菜价让路

原标题:华为Mate40和华为P50也会搭载鸿蒙,华为Mate30跌至白菜价让路华为Mate40和华为P50也会搭载鸿蒙,华为Mate30跌至白菜价让路!华为P50Pro的机身部分后置摄像头模块的外观有发生了改变,可以看到华为P50Pro并没有将所…

linux将db2账户添加到组_超实用的shell脚本--Linux安全加固设置,值得收藏

概述近几年来Internet变得更加不安全了。网络的通信量日益加大,越来越多的重要交易正在通过网络完成,与此同时数据被损坏、截取和修改的风险也在增加。 只要有值得偷窃的东西就会有想办法窃取它的人。Internet的今天比过去任何时候都更真实地体现出这一点…

迷你世界无人驾驶地铁火车_出口伊斯坦布尔地铁列车“云下线”

轨道世界 RailWorld开放|共享|价值导读 ID:RailWorld出口伊斯坦布尔地铁列车“云下线”全自动无人驾驶,全寿命远程跟踪、诊断和维护,全车内循环感应系统,极具土耳其风情的外观及内饰……7月14日&#xff0c…

java: 程序包com.github.pagehelper不存在_Rust语言正在兴起,Java、Python、C的末日来临?...

您可能从未用Mozilla创建的开源,系统级编程语言Rust编写任何东西,但是您可能会在某个时候写。在Stack Overflow的2019年开发人员调查中,开发人员将Rust评为“最受欢迎的”语言,而Redmonk在半年的语言排名中,Rust 跻身前…

惠安七号机器人创意园_我是F518创意园,请为我投票!

春去秋来,一个轮回又一年。“ 你知道F518创意园开园多久了吗?对的,13年!”作为深圳实施“腾笼换鸟”首批项目和深圳申请联合国科教文组织“设计之都”重要组成部分,我们开园至今已经13年了!白驹过隙&#x…

c++ 获取文件夹创建时间_手把手教学免费创建个人网站

点击蓝字关注我们可以不成材 不能不成长!给大家分享一个非常有用的skill——在GitHub上免费创建个人网站。什么是GitHubGitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。在GitHub上…

量子计算机通用程序,基于拓扑量子纠错码的量子计算机,量子计算机程序具有通用性?...

不管量子计算机的内部是由什么组成,量子计算机的快速计算都可以归结为应用于量子比特的简单指令序列,即量子计算机内部的基本信息单位。无论这台计算机是由离子链、超导体结还是硅片组成,事实证明,一次只影响一个或两个量子比特的…

中兴f650是千兆的吗_装宽带送的光猫自带WiFi功能,我还需要买路由器吗?

想必很多家里装过宽带的朋友都想过一个问题,网线入户需要一个光猫,还需要一个路由器,可不可以将两个设备合二为一,或者只用光猫发射WiFi信号行吗?其实是可以的,但为了更好的体验教授建议还是不要这样做。设…

平移刚体上各点的加速度和速度_物理-力学|第七讲|刚体力学

刚体运动学刚体模型刚体是一个特殊的质点系, 刚体上任意两质点间距离保持不变。刚体模型可以看成是现实中劲度系数极大的物体的抽象化,这类物体本身的形变对其运动的影响可以忽略,比如一个篮球,当其与地面碰撞时必然会产生形变&am…

改变定时器获取传感器频度_称重传感器在高速定量分装系统的应用

高速定量分装系统由微机控制称重传感器的称重和比较,并输出控制信号,执行定值称量,控制外部给料系统的运转,实行自动称量和快速分装的任务。  系统采用MCS-51单片机和V/F电压频率变换器等电子器件,其硬件电路框图如图…

c++没有终结符的多行输入如何停止_如何使用iloc和loc 对Pandas Dataframe进行索引和切片...

在这篇文章中,我们将使用iloc和loc来处理数据。更具体地说,我们将通过iloc和loc例子来学习切片和索引。一旦我们将一个数据集加载为Pandas dataframe,我们通常希望根据某些条件开始访问该数据的特定部分。例如,如果我们的数据集包…

手机发电脑邮箱未开启服务器,手机邮箱无法发送和接收邮件时发生了什么

你好!您是2113,是通过手机自己的电子邮件添加5261邮箱4102吗?我介绍了QQ邮箱的添加,您必须打开接收1653并发送服务.您可以在设置---添加帐户中找到邮件首先,您需要登录到邮箱的Web版本,并在帐户中设置设置P…

android 上下数字滚动_原来PPT数字还有这么高大上的展示方式

数字,是PPT当中非常重要的元素,说明价格、呈现销量、展示性能等等多种场合都有使用,数据也是PPT当中最直观的表现形式。那么,PPT当中的数字要怎么表现才显得高逼格呢?在这里介绍一个小技巧:动态滚动展示。先…

kettle中过滤记录中时间_Kettle中Step:Text file outpout功能

${Internal.Transformation.Filename.Directory}/上面的办法是在当前Transformation下生成文件路径。导出的数据不被Tableau认可,这比较奇怪,虽然用编辑器打开都在。在某个案例中看到,在导出的标题中有Excel的换行,取得后没有改。…

quill鼠标悬浮 出现提示_「超逸酷玩」VT300S RGB电竞游戏鼠标支持云同步自定义设置...

说到鼠标大家一定不会陌生,根据大家使用环境的不同,对于鼠标体验需求也在逐步提升,在游戏方面虽然市面上也推出很多无线鼠标产品,但是有线电竞鼠标硬件设计和软件功能上还是有很大的优势,雷柏VT300S是一款RGB电竞鼠标&…

风之大陆 服务器不稳定,《风之大陆》手游官网——异世界奇幻冒险MMO手游

勇敢的守护者:为给您提供更好的游戏体验,游戏服务器将于2021年5月20日6:00起进行更新维护本次更新维护预计需要60分钟,根据维护进度可能提前或延迟开服。在服务器维护期间,您将无法登入游戏,请您及时下线,以…

catia测量工具小尺子在哪_小区垃圾桶旁捡来旧茶几,老爸巧手改成沙发,邻居一个劲问哪买的...

前几天老爸在小区垃圾桶旁边捡回来一个旧茶几,又脏又破都掉漆了,捡回来用不了还占地方,他却非说要动手将它改成个小沙发。那么麻烦还不如直接买一个,但最后改出来的效果还不错,关键是便宜,不到50块钱比定制…