通过ShareSDK实现分享功能

在android中调用分享其实本质也是一个Intent,发送该Intent,就可以进行分享操作。如下:
intent=new Intent(Intent.ACTION_SEND); 
intent.setType("text/plain"); 
intent.putExtra(Intent.EXTRA_SUBJECT, "分享"); 
intent.putExtra(Intent.EXTRA_TEXT, text);  
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(Intent.createChooser(intent, getTitle())); 


效果如下图:


但这样明显是不足的,比如如果用户想通过微信发送分享,但没有装微信,则就无法进行分享,因为根本就不会出现分享的选项!!所以需要通过oauth能够进行分享的框架
目前比较好的有 友盟SDK和ShareSDK两种。




两种使用方式基本相同,下面接着ShareSDK讲解下使用:



在Share For Android下,有QuickIntegrater.jar文件,这就是快速集成ShareSDK的工具
在有jdk的环境下,直接点击运行,出现如下界面:

点击确定,在sample目录下就会生成使用例子。
1,把生成的项目给集成进来
集成的项目的包名和项目名需要和上面填写的一致
集成结果如图:


2,添加权限:
<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" />



3.添加ShareSDK的Activity

<activity
android:name="cn.sharesdk.framework.ShareSDKUIShell"
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>
</activity>


如果,集成的有微信或易信业务,需要添加如下信息
<!--微信分享回调 -->
<activity
android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />

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


分享功能的使用:
使用之前需要在ShareSDK注册,并添加应用,获取app key,这个步骤在sina,腾讯等开放平台都是一样的,在此不做赘述。
如下:




之后需要把该信息添加到项目中,这里有三种方式:
第一种:在ShareSDK的应用管理后台中配置,使用此方法需要调用ShareSDK.init(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化,如果以后更改了注册信息可以直接从网上更改,而不用重新发布新版本进行更新。(优先级最高)。
第二种:通过代码配置“setPlatformDevInfo(String, HashMap<String, Object>)”方法,使用此方法需要调用ShareSDK.init(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化。(优先级中)。

第三种:通过“assets/ShareSDK.xml”文件来配置,次方式会以明文存在,但这种方式最为简单。(优先级最低)。

第一种方式可以实现“动态配置应用信息”的功能,但是一旦脱离网络,ShareSDK可能无法运作;第三种方式是优先级最低的方式,但是它最为方便、集中;最后使用代码设置的方式是最灵活的方式,第二种方式开发者可以在代码里面写死应用信息,也可以通过私有协议,从自己的服务器上动态获取应用注册信息,其优先级居第一种和第二种之间。

故采用第三种方式进行:
在集成项目时,assert目录下有如下文件:


把该文件集成进项目,并修改,其中字段的意义和解释在该文件的注释上。
要修改的值有两项:
 <ShareSDK 
AppKey = "androidv1101"/> <!-- 修改成你在sharesdk后台注册的应用的appkey"-->
此处的appKey为上面注册获取的值。

 <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->
<SinaWeibo
Id="1"
SortId="1"
AppKey="568898243"
AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
RedirectUrl="http://www.sharesdk.cn"
ShareByAppClient="true"
Enable="true" />
要使用的分享功能中的信息,以新浪微博为例,其中的值,也需要在sina开放平台注册,创建应用,并获取。如下:

进行配置后,最终效果如图:

点击新浪微博,如下:



点击分享,出现微博登陆界面。

登陆,并授权后就可以分享了!!!
分享成功或失败,会给出Noifaction提示。

微博如下:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值