执行sharesdk 快捷分享,分享出错的提示
列出一些常用的快捷分享
share(message, null, SinaWeibo.NAME); share(message, null, TencentWeibo.NAME); share(share_content, null, Wechat.NAME); share(share_content, null, WechatMoments.NAME);
// 新浪微博分享 腾讯微博等只需修改 NAME public void share(String text, String photopath, String sharename) { Platform.ShareParams sp = new SinaWeibo.ShareParams(); sp.text = text; if (photopath!=null) { // sp.imagePath = "/mnt/sdcard/测试分享的图片.jpg"; sp.imagePath = photopath; } Platform weibo = ShareSDK.getPlatform(context, sharename); // 设置分享事件回调 weibo.setPlatformActionListener(new PlatformActionListener() { public void onError(Platform platform, int action, Throwable t) { // 操作失败的处理代码 // Message m = handler.obtainMessage(); // m.what = SHARE_FAIL; // TestShare.this.handler.sendMessage(m); Message msg = handler.obtainMessage(); msg.what = SHARE_FAIL; msg.arg1 = action; msg.obj = t; WeiBoShareActivity.this.handler.sendMessage(msg); } public void onComplete(Platform platform, int action, HashMap<String, Object> res) { // 操作成功的处理代码 Message m = handler.obtainMessage(); m.what = SHARE_SUCCESS; WeiBoShareActivity.this.handler.sendMessage(m); } public void onCancel(Platform platform, int action) { // 操作取消的处理代码 Message m = handler.obtainMessage(); m.what = SHARE_CANCEL; WeiBoShareActivity.this.handler.sendMessage(m); } }); // 执行图文分享 weibo.share(sp); } private Handler handler = new Handler() { /* * (non-Javadoc) * * @see android.os.Handler#handleMessage(android.os.Message) */ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub ProgressDlg.cancleDlg(); switch (msg.what) { case SHARE_SUCCESS: String successtext = getResources().getString(R.string.share_completed); EdjTools.showShortToast(successtext,WeiBoShareActivity.this); WeiBoShareActivity.this.finish(); break; case SHARE_FAIL: String failtext=""; if (msg.obj instanceof WechatClientNotExistException) { failtext = getResources().getString(R.string.wechat_client_inavailable); } else if (msg.obj instanceof WechatTimelineNotSupportedException) { failtext = getResources().getString(R.string.wechat_client_inavailable); } // java.lang.Throwable: {"ret":5,"seqid":5950018181724704141,"detailerrinfo": // {"timestamp":1385346563,"proctime":41,"cmd":1472,"accesstoken":"","clientip":"219.143.8.242","apiname":"weibo.t.add","ret2":5,"appkey":"801400858","ret1":20,"ret4":3515057674,"ret3":75},"msg":"prevent duplicate publication","errcode":75} else if (msg.obj instanceof java.lang.Throwable && msg.obj.toString()!=null&&msg.obj.toString().contains("prevent duplicate publication")) { failtext = getResources().getString(R.string.prevent_duplicate); }else if(msg.obj.toString().contains("error")){ failtext = getResources().getString(R.string.share_failed_error); }else { failtext = getResources().getString(R.string.share_failed); } EdjTools.showShortToast(failtext,WeiBoShareActivity.this); break; case SHARE_CANCEL: break; } } };
public class EdjTools { public static void showLongToast(String message, Context context) { Toast.makeText(context, message, Toast.LENGTH_LONG).show(); } public static void showShortToast(String message, Context context) { Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); } }
<string name="wechat_client_inavailable">目前您的微信版本过低或未安装微信,需要安装微信才能使用</string> <string name="google_plus_client_inavailable">Google+ 版本过低或者没有安装,需要升级或安装Google+才能使用!</string> <string name="qq_client_inavailable">QQ 版本过低或者没有安装,需要升级或安装QQ才能使用!</string> <string name="prevent_duplicate">请稍后发送</string>
关于第三个异常、腾讯微博连续发送同样的内容、并在网页删除该微博再次客户端分享时、出现分享失败
返回的内容在代码注释中
大意是:防止重发的发送 我加入了提示语句 "请稍后发送"