你的位置:首页 > 操作系统

[操作系统]Android ShareSDK快速实现分享功能


第一步 :获取ShareSDK

  为了集成ShareSDK,您首先需要到ShareSDK官方网站注册并且创建应用,获得ShareSDK的Appkey,然后到SDK的下载页面下载SDK的压缩包,解压以后可以得到如下图的目录结构:

  ShareSDK在“ShareSDK for Android”目录下,此目录中的“Libs”包含“MainLibs”和“OnekeyShare” 分别是ShareSDK的核心库和“快捷分享”的源码库,说明文档也在“ShareSDK for Android”目录下,集成ShareSDK前请务必仔细阅读。 “ShareSDK for Android ApiDoc”包含Mainlibs和OnekeyShare的JavaDoc,供开发者开发时查阅。 “ShareSDK for Android Sample”包含ShareSDK的功能演示代码和apk文件,Sample源码的JavaDoc在中。 “ShareSDK for Android Services”包含ShareSDK已经发布的“插件服务”,暂时我们只提供了“评论与赞”服务,压缩包中已经提供了此插件服务的依赖库、示例代码、JavaDoc和apk文件。

第二步:导入ShareSDK

ShareSDK集成方式:

1、直接复制jar包到目标项目libs目录

  直接复制jar和资源的方式,可以参考ShareSDK的Sample项目。 使用复制jar的方法,需要除了复制MainLibs/libs中的jar外,还需要复制MainLibs/res中图片和strings,否则会出现授权时找不到资源的问题。 而且如果您的项目也集成了快捷分享,还需要复制OneKeyShare/src中的源码、OneKeyShare/res中的资源,如果你的项目里没有android-support-v4的jar需要把OneKeyShare/libs下的android-support-v4的jar到您的项目中。

2、快速生成项目

  由于直接复制jar包和资源的集成方式比较麻烦,ShareSDK提供了快速集成的程序,在Windows下可以直接双击执行,完成以后可以通过复制目标目录中的文件到您项目中覆盖就行了。 极大简化了“直接复制jar和资源”这种集成方式的操作步骤。 对于你的项目是刚开发或者想写一个Demo测试ShareSDK功能,可以使用这种方法快速集成

第三步:添加应用信息

  有三种方式

  第一种:在ShareSDK的应用管理后台中配置,使用此方法需要调用ShareSDK.initSDK(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化,如果以后更改了注册信息可以直接从网上更改,而不用重新发布新版本进行更新。(优先级最高)

  第二种:通过代码配置“setPlatformDevInfo(String, HashMap<String, Object>)”方法,使用此方法需要调用ShareSDK.init(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化。(优先级中)

  第三种:通过“assets/ShareSDK.(优先级最低)

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

<ShareSDK   AppKey="填写您在ShareSDK上注册到的AppKey" /><SinaWeibo  SortId="此平台在您分享列表中的位置,整型,数值越大越靠后"  AppKey="填写您在新浪微博上注册到的AppKey"  AppSecret="填写您在新浪微博上注册到的AppSecret"  Id="自定义字段,整型,用于您项目中对此平台的识别符"  RedirectUrl="填写您在新浪微博上注册的RedirectUrl"  ShareByAppClient="是否使用客户端进行分享"  Enable="布尔值,标记此平台是否有效" />

  ShareSDK.

  代码配置注册信息示例(演示初始化新浪微博配置信息) 因为各个分享平台可以设置的配置信息不同,具体分享平台需要设置哪些配置信息请参考sample里的ShareSDK.

ShareSDK.initSDK(Context,"你的应用在Sharesdk注册时返回的AppKey"); HashMap<String,Object> hashMap = new HashMap<String, Object>();   hashMap.put("Id","1");   hashMap.put("SortId","1");   hashMap.put("AppKey","568898243");   hashMap.put("AppSecret","38a4f8204cc784f81f9f0daaf31e02e3");  hashMap.put("RedirectUrl","http://www.sharesdk.cn");   hashMap.put("ShareByAppClient","true");   hashMap.put("Enable","true");   ShareSDK.setPlatformDevInfo(SinaWeibo.NAME,hashMap);

  方法需要在Sharesdk.initSDK()方法后调用,如果调用了ShareSDK.stopSDK()需要在ShareSDK.initSDK后重新调用ShareSDK.setPlatformDevInfo()方法。 关于应用信息不同字段的更详细解释,可以参考ShareSDK.

第四步:配置AndroidManifest.

  不同的集成度需要在AndroidManifest.

<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.GET_ACCOUNTS"/><uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.GET_TASKS"/><uses-permission android:name="android.permission.INTERNET"/>

  这些权限将允许您的项目和ShareSDK判断当前应用是否“前置”、获取连接网络的权限、获取您的设备网络状态的权限、实现https安全连接的权限、读取手机设备状态的权限和保存必要配置的权限。一般来说,即便不集成ShareSDK,大部分的项目也都会注册申请这些权限。

  其次,为了授权操作可以顺利完成,需要在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" />

 

  如果您的项目集微信或者微信朋友圈,请查看AndroidManifest.配置文件里的package路径,需要在package目录下创建wxapi目录再放置WXEntryActivity。 没有此activity在微信分享后回调会检查是否有此activity,没有将会报错。

<activity     android:name=".wxapi.WXEntryActivity"  android:theme="@android:style/Theme.Translucent.NoTitleBar"     android:configChanges="keyboardHidden|orientation|screenSize"     android:exported="true"     android:screenOrientation="portrait" />

 

  而如果您的项目集易信的两个平台,请查看AndroidManifest.

<activity     android:name=".yxapi.YXEntryActivity"     android:theme="@android:style/Theme.Translucent.NoTitleBar"  android:configChanges="keyboardHidden|orientation|screenSize"   android:exported="true"     android:screenOrientation="portrait" />

 

  客户端的操作回调,因此ShareSDK也无法给予您操作回调。为了避免出错,请使用相对路径的方式,直接复制上面的代码到您的AndroidManifest.中即可

第五步:添加代码

  打开您项目的入口Activity,在其onCreate中插入下面的代码: 如果使用ShareSDK.

ShareSDK.initSDK(this);

  如果使用代码配置应用注册信息或者应用后台配置应用注册信息,调用

ShareSDK.initSDK(this,”androidv1101″);

  androidv1101:是你的应用在ShareSDK注册应用信息时返回的AppKey。 代码会初始化ShareSDK,此后对ShareSDK的操作都以此为基础。如果不在所有ShareSDK的操作之前调用这行代码,会抛出空指针异常

  效果图:

 

 

作者:杰瑞教育
出处:http://www.cnblogs.com/jerehedu/ 
版权声明:本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
技术咨询:JRedu技术交流