1.上ShareSDK的网站下载Androi的ShareSDK并解压,我下的是2.12

2.

安卓 SharedPreferences 设置保存时间 android sharesdk_ide

把libs里面的工程导入eclipse,里面的两个工程都是LibraryProject,然后项目工程引用这两个LibraryProject

3.在项目assets目录下添加ShareSDK.conf文件,里面填写好要添加的平台的key等信息。

4.

配置 AndroidManifest.xml
不同的集成度需要在 AndroidManifest.xml 中添加的内容
不一样。但是首先您需要添加下面的权限列表:
<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"/>
这些权限将允许您的项目和 Share SDK 判断当前应用是否
“前
置” 获取连接网络的权限、
、
获取您的设备网络状态的权限、
实现 https 安全连接的权限、读取手机设备状态的权限和保
存必要配置的权限。一般来说,即便不集成 Share SDK,大部
分的项目也都会注册申请这些权限。
其次,为了授权操作可以顺利完成,需要在 application
下注册下面的 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" />
ShareSDKUIShell 的路径是固定的 ,一定要在“cn.sharesdk.
framework”下,因为它在 Share-Core 中。




5.在要avtivity中添加:

ShareSDK.initSDK(this);

OnekeyShare oks = new OnekeyShare();
oks.setText("asdf");
oks.setPlatform(SinaWeibo.NAME);//指定微博平台,如果不添加这行,则弹出9宫格供用户选择
oks.show(this);

搞定。


在弹出的9宫格分享页面中,会有很多平台,如果有些平台不希望显示,可以有两种方法,

1.删除项目引用的两个工程之一的MainLibs目录下的libs里面对应的平台的jar包。

2.配置ShareSDK.conf文件,不想显示的平台设置Enable="false"


直接分享:

Platform.ShareParams sp = new SinaWeibo.ShareParams();
		sp.text = "测试分享的文本";
//		sp.imagePath = "/mnt/sdcard/测试分享的图片.jpg";
		Platform weibo = ShareSDK.getPlatform(this, SinaWeibo.NAME);
		weibo.removeAccount();//清除以前缓存在本地的账户信息,如果注释掉此行,将不用授权,直接分享
		weibo.setPlatformActionListener(new PlatformActionListener() {

			@Override
			public void onError(Platform arg0, int arg1, Throwable arg2) {

			}

			@Override
			public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
			}

			@Override
			public void onCancel(Platform arg0, int arg1) {
			}
		}); // 设置分享事件回调
		// 执行图文分享
		weibo.share(sp);




2014年1月6日:

今天在用一键分享分享qq空间时出现了错误,回调接口的内容:  onError Platform:QZone; action:9; Throwable:{"ret":1000,"msg":""}

后来发现原来是调用one key share时参数设置的不够的原因

OnekeyShare oks = new OnekeyShare();
		
		//qq空间必须配置某一参数,不然会失败
		oks.setText("测试分享的文本");
		// oks.setTitle("测试分享的标题");
		// oks.setTitleUrl("http://sharesdk.cn");
		// oks.setComment( "我对此分享内容的评论");
		// oks.setSite("发布分享的网站名称");
		// oks.setSiteUrl("发布分享网站的地址");


2014年1月7日:

今天发下qq空间的授权页面无法自定义,其他平台都可以,

跟客服沟通后发现是个bug,我使用的版本是2.3.0

另外,qq空间分享必须要提供字段:text,title、titleurl、site、siteurl


 微信分享要在官网注册应用,android需要安装微信的签名生成工具到手机上,然后在装上自己应用签好名的apk,然后打开微信的签名工具,输入自己应用的包名,生成签名。