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); }
setImageUrl()方法是用来进行设置分享时候弹出框中的图片。
当然,真正的实现分享还不止这些。可以分为一些步骤
:
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" />
/** 微信客户端回调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(); } } }
<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"/>
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