第一步:下载SDK:http://www.mob.com/#/downloadDetail/ShareSDK/Android,选择自己要集成的平台,下载
解压文件,打开ShareSDK for Android文件夹,运行QuickIntegrater.jar,选择需要的内容。会生成Sample文件夹
第二步:将assets,libs,res内容复制到项目中(assets应该在main下面,和java,res并列),快捷分享需要Sample\src下的cn整个文件夹,将其复制到java目录下
自定义分享只需要Sample\src\cn\sharesdk\demo\wxapi的WXEntryActivity.Java文件,复制到项目中
第三步:复制权限
<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"/>
第四步:添加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" >
<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>
<!-- 调用新浪原生SDK,需要注册的回调activity -->
<intent-filter>
<action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- 微信分享回调-->
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
第五步:更改assets下ShareSDK的appkey,qq空间,微信,微博 (RedirectUrl必须和微博注册的回调一样)
第六步:(快捷分享)
private void showShare() { ShareSDK.initSDK(this); OnekeyShare oks = new OnekeyShare(); //关闭sso授权 oks.disableSSOWhenAuthorize(); // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用 oks.setTitle(getString(R.string.app_name)); // titleUrl是标题的网络链接,仅在人人网和QQ空间使用 oks.setTitleUrl(link); // text是分享文本,所有平台都需要这个字段 oks.setText("全面上线啦"); // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数 //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片 // url仅在微信(包括好友和朋友圈)中使用 oks.setUrl(link); // comment是我对这条分享的评论,仅在人人网和QQ空间使用 oks.setComment(getString(R.string.app_name)+link); // site是分享此内容的网站名称,仅在QQ空间使用 oks.setSite(getString(R.string.app_name)); // siteUrl是分享此内容的网站地址,仅在QQ空间使用 oks.setSiteUrl(link); if (null!=logo){ oks.setImageUrl(logo); } // 启动分享GUI oks.show(this); }分享到指定平台
在activity内实现
PlatformActionListener, Handler.Callback
@Override public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) { Message msg = new Message(); msg.arg1 = 1; UIHandler.sendMessage(msg,this); } @Override public void onError(Platform platform, int i, Throwable throwable) { Message msg = new Message(); msg.arg1 = 2; UIHandler.sendMessage(msg, this); } @Override public void onCancel(Platform platform, int i) { Message msg = new Message(); msg.arg1 = 3; UIHandler.sendMessage(msg, this); } @Override public boolean handleMessage(Message message) { switch (message.arg1) { case 1: {以下分享都是包含图片和链接Toast.makeText(getContext(),"分享成功",Toast.LENGTH_SHORT);} break; case 2: {Toast.makeText(getContext(),"分享失败",Toast.LENGTH_SHORT);} break; case 3: {Toast.makeText(getContext(),"取消分享",Toast.LENGTH_SHORT);} break; } return false;}
public void click(View view) { switch (view.getId()) { case R.id.copy_share://复制链接 ClipboardManager cmb = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); ClipData mClipData = ClipData.newRawUri("Label", Uri.parse(link)); cmb.setPrimaryClip(mClipData);Toast.makeText(getContext(),"链接已复制",Toast.LENGTH_SHORT);break; case R.id.friend_share://朋友圈 WechatMoments.ShareParams spwechatmonent = new WechatMoments.ShareParams(); spwechatmonent.setTitle(title);//文字 spwechatmonent.setUrl(link);//链接 spwechatmonent.setImageUrl(picurl);//图片网址 spwechatmonent.setShareType(Platform.SHARE_WEBPAGE);//分享类型(我这里分享的是链接) Platform wechatmonent = ShareSDK.getPlatform(WechatMoments.NAME); wechatmonent.setPlatformActionListener(this); wechatmonent.share(spwechatmonent); break; case R.id.wechat_share://微信 Wechat.ShareParams spwechat = new Wechat.ShareParams(); spwechat.setTitle(title);//标题
spwechat.setText(content);//内容 spwechat.setUrl(link);//链接 spwechat.setImageUrl(picurl);//图片 spwechat.setShareType(Platform.SHARE_WEBPAGE); Platform wechat = ShareSDK.getPlatform(Wechat.NAME); wechat.setPlatformActionListener(this); wechat.share(spwechat); break; case R.id.qq_share://QQ QQ.ShareParams spqq = new QQ.ShareParams(); spqq.setText(content); spqq.setTitle(title); spqq.setTitleUrl(link); spqq.setImageUrl(picurl); Platform qq = ShareSDK.getPlatform(QQ.NAME); qq.setPlatformActionListener(this); qq.share(spqq); break; case R.id.sina_share://新浪 SinaWeibo.ShareParams spsina = new SinaWeibo.ShareParams(); spsina.setText(title+link);//文字+链接(链接自动会区分) spsina.setImageUrl(picurl); Platform weibo = ShareSDK.getPlatform(SinaWeibo.NAME); weibo.setPlatformActionListener(this); weibo.share(spsina); break; }}