SharedSdk 分享

SharedSdk 是第三方分享各大平台的框架,使用起来也比较简单、易用(不好的是,统计不到分享数据,不知道为什么),这里,我只实现啦:微信好友、微信朋友圈、微信收藏、QQ好友、QQ空间和短信的分享,其他平台请到官网查询(官网:http://www.mob.com/#/index)。

实现代码如下:

/**
	 * 微信分享
	 */
	private void weixin(int type){
		ShareSDK.initSDK(this);
		ShareParams wechat = new ShareParams();
		wechat.setTitle("在这写标题");	
		wechat.setText("在这写内容");
//		wechat.setImageUrl(shared_ImgUrl);//添加分享中显示的图片
		
		//在这里添加分享的点击的链接地址
		wechat.setUrl("http://www.baidu.com");
		wechat.setShareType(Platform.SHARE_WEBPAGE);
		Platform weixin = null;
		if(type == 0){
			weixin = ShareSDK.getPlatform(Wechat.NAME);
		}else if(type == 1){
			weixin = ShareSDK.getPlatform(WechatMoments.NAME);
		}else{
			weixin = ShareSDK.getPlatform(WechatFavorite.NAME);
		}
//		weixin.setPlatformActionListener(this);
		weixin.share(wechat);
	}
	
	/**
	 * qq空间分享
	 * @param context
	 * @param shared_ImgUrl
	 */
	private void qzone(){
		ShareSDK.initSDK(this);
		ShareParams sp = new ShareParams();
		sp.setTitle("在这写标题");
		sp.setTitleUrl("http://www.baidu.com"); // 分享的链接地址
		sp.setText("在这些内容");
//		sp.setImageUrl(shared_ImgUrl);//添加分享中显示的图片
		Platform qzone = ShareSDK.getPlatform (QZone.NAME);
//		qzone. setPlatformActionListener (this); // 
		qzone.share(sp);
	}
	/**
	 * qq分享
	 * @param context
	 * @param shared_ImgUrl
	 */
	private void qq(){
		ShareSDK.initSDK(this);
		ShareParams qq = new ShareParams();
		qq.setTitle("在这写标题");	
		qq.setTitleUrl("http://www.baidu.com");//
		qq.setText("在这写内容");
//		qq.setImageUrl(shared_ImgUrl);//添加分享中显示的图片
		Platform qqq = ShareSDK.getPlatform(QQ.NAME);
//		qqq.setPlatformActionListener(this);
		qqq.share(qq);
	}
	//分享到短信
	private void shortmessage(){
		ShareSDK.initSDK(this);
		ShareParams message = new ShareParams();
		message.setText("在这写内容");
		Platform msg = ShareSDK.getPlatform(ShortMessage.NAME);
		msg.share(message);
	}

分享不外乎:标题、内容和超链接,这些都可以在SharedParams中setTitle(),setText(),setTitleUrl()进行实现。

setImageUrl()方法是用来进行设置分享时候弹出框中的图片。

当然,真正的实现分享还不止这些。可以分为一些步骤

1:添加各个分享的sdk的jar包
SharedSdk 分享_第1张图片

:

2:在manifest.xml中添加如下文件:

<span style="white-space:pre">	</span><activity
            android:name="cn.sharesdk.framework.ShareSDKUIShell"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:windowSoftInputMode="stateHidden|adjustResize" />

当然如果还要实现微信分享,还需要添加
<span style="white-space:pre">	</span><activity
            android:name="cn.sharesdk.wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

并在项目中添加  cn.sharesdk.wxapi.WXEntryActivity类
/** 微信客户端回调activity示例 */
public class WXEntryActivity extends WechatHandlerActivity {

	/** 
	 * 处理微信发出的向第三方应用请求app message
	 * <p>
	 * 在微信客户端中的聊天页面有“添加工具”,可以将本应用的图标添加到其中
	 * 此后点击图标,下面的代码会被执行。Demo仅仅只是打开自己而已,但你可
	 * 做点其他的事情,包括根本不打开任何页面
	 */
	public void onGetMessageFromWXReq(WXMediaMessage msg) {
		Intent iLaunchMyself = getPackageManager().getLaunchIntentForPackage(getPackageName());
		startActivity(iLaunchMyself);
	}

	/**
	 * 处理微信向第三方应用发起的消息
	 * <p>
	 * 此处用来接收从微信发送过来的消息,比方说本demo在wechatpage里面分享
	 * 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信
	 * 客户端会通过这个方法,将这个信息发送回接收方手机上的本demo中,当作
	 * 回调。
	 * <p>
	 * 本Demo只是将信息展示出来,但你可做点其他的事情,而不仅仅只是Toast
	 */
	public void onShowMessageFromWXReq(WXMediaMessage msg) {
		if (msg != null && msg.mediaObject != null
				&& (msg.mediaObject instanceof WXAppExtendObject)) {
			WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;
			Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show();
		}
	}

}

当然,还需要在manifest中添加所需要的权限

<span style="white-space:pre">	</span><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:添加需要分享平台的appid和appkey

sharedsdk 把一些分享中东西封装好啦,我们只需要在SharedSdk.xml中对应的添加appid和appkey就ok。并且把SharedSdk.xml放在assets下

通过以上步骤,差不多就可以真正的跑起来,不过,在这里我说一下,在实现过程中的一些注意事项:

1:微信需要签名,需要通过签名工具,可以在这里下载http://download.csdn.net/download/mmjiajia132/9293817。安装到手机上,输入项目包名就可以得到签名

2:微信申请appid,appkey需要审核,QQ不需要就可以直接用


3:QQ好友分享左下角的图标 是在sharedsdk中上传的图片(这个有点坑啊,在QQ互联中设置的不管用)


项目代码:点击进行下载

MMjiajia132持续更新ing

你可能感兴趣的:(android,分享,sharedsdk)