Android Open Source - ShareSDKShareDifMsgDemo-Android Share Core






From Project

Back to project page ShareSDKShareDifMsgDemo-Android.

License

The source code is released under:

MIT License

If you think the Android project ShareSDKShareDifMsgDemo-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * ????:http://www.mob.com//from  www .  ja va 2 s .c o m
 * ?????QQ: 4006852216
 * ????:ShareSDK   ??????????????????????????????????????????????????????????????????????????????24??????????
 *
 * Copyright (c) 2013? mob.com. All rights reserved.
 */

package cn.sharesdk.onekeyshare;

import android.content.Context;
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.text.TextUtils;

import java.io.File;
import java.io.FileOutputStream;
import java.util.HashMap;

import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.Platform.ShareParams;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.framework.utils.R;

/**
 * ShareCore?????????????????????????????????????????HashMap?
 *??{@link ShareParams}???????????????????????????????
 */
public class ShareCore {
  private ShareContentCustomizeCallback customizeCallback;

  /** ????????????????????????????????? */
  public void setShareContentCustomizeCallback(ShareContentCustomizeCallback callback) {
    customizeCallback = callback;
  }

  /**
   * ?????????????
   * <p>
   * <b>????</b><br>
   * ????data??????????{@link ShareParams}????????????????????
   *??????????????????????
   */
  public boolean share(Platform plat, HashMap<String, Object> data) {
    if (plat == null || data == null) {
      return false;
    }

    try {
      String imagePath = (String) data.get("imagePath");
      Bitmap viewToShare = (Bitmap) data.get("viewToShare");
      if (TextUtils.isEmpty(imagePath) && viewToShare != null && !viewToShare.isRecycled()) {
        String path = R.getCachePath(plat.getContext(), "screenshot");
        File ss = new File(path, String.valueOf(System.currentTimeMillis()) + ".jpg");
        FileOutputStream fos = new FileOutputStream(ss);
        viewToShare.compress(CompressFormat.JPEG, 100, fos);
        fos.flush();
        fos.close();
        data.put("imagePath", ss.getAbsolutePath());
      }
    } catch (Throwable t) {
      t.printStackTrace();
      return false;
    }

    ShareParams sp = new ShareParams(data);
    if (customizeCallback != null) {
      customizeCallback.onShare(plat, sp);
    }

    String[] flags = new String[] {
        "OnekeyShare",
        plat.getContext().getPackageName(),
        String.valueOf(ShareSDK.getSDKVersionCode())
    };
    sp.setCustomFlag(flags);
    plat.share(sp);
    return true;
  }

  /** ??????????????????? */
  public static boolean isUseClientToShare(String platform) {
    if ("Wechat".equals(platform) || "WechatMoments".equals(platform)
        || "WechatFavorite".equals(platform) || "ShortMessage".equals(platform)
        || "Email".equals(platform) || "GooglePlus".equals(platform)
        || "QQ".equals(platform) || "Pinterest".equals(platform)
        || "Instagram".equals(platform) || "Yixin".equals(platform)
        || "YixinMoments".equals(platform) || "QZone".equals(platform)
        || "Mingdao".equals(platform) || "Line".equals(platform)
        || "KakaoStory".equals(platform) || "KakaoTalk".equals(platform)
        || "Bluetooth".equals(platform) || "WhatsApp".equals(platform)
        ) {
      return true;
    } else if ("Evernote".equals(platform)) {
      Platform plat = ShareSDK.getPlatform(platform);
      if ("true".equals(plat.getDevinfo("ShareByAppClient"))) {
        return true;
      }
    } else if ("SinaWeibo".equals(platform)) {
      Platform plat = ShareSDK.getPlatform(platform);
      if ("true".equals(plat.getDevinfo("ShareByAppClient"))) {
        Intent test = new Intent(Intent.ACTION_SEND);
        test.setPackage("com.sina.weibo");
        test.setType("image/*");
        ResolveInfo ri = plat.getContext().getPackageManager().resolveActivity(test, 0);
        return (ri != null);
      }
    }

    return false;
  }

  /** ???????????????????????? */
  public static boolean canAuthorize(Context context, String platform) {
    if ("WechatMoments".equals(platform)
        || "WechatFavorite".equals(platform) || "ShortMessage".equals(platform)
        || "Email".equals(platform) || "GooglePlus".equals(platform)
        || "Pinterest".equals(platform) || "Yixin".equals(platform)
        || "YixinMoments".equals(platform) || "Line".equals(platform)
        || "KakaoStory".equals(platform) || "KakaoTalk".equals(platform)
        || "Bluetooth".equals(platform) || "WhatsApp".equals(platform)
        ) {
      return false;
    }
    return true;
  }


  /** ???????????????????????????? */
  public static boolean canGetUserInfo(Context context, String platform) {
    if ("WechatMoments".equals(platform)
        || "WechatFavorite".equals(platform) || "ShortMessage".equals(platform)
        || "Email".equals(platform) || "GooglePlus".equals(platform)
        || "Pinterest".equals(platform) || "Yixin".equals(platform)
        || "YixinMoments".equals(platform) || "Line".equals(platform)
        || "KakaoStory".equals(platform) || "KakaoTalk".equals(platform)
        || "Bluetooth".equals(platform) || "WhatsApp".equals(platform)
        || "Pocket".equals(platform)) {
      return false;
    }
    return true;
  }
}




Java Source Code List

cn.sharesdk.demo.tpl.MainActivity.java
cn.sharesdk.demo.tpl.ShareContentCustomizeDemo.java
cn.sharesdk.demo.tpl.wxapi.WXEntryActivity.java
cn.sharesdk.onekeyshare.CustomerLogo.java
cn.sharesdk.onekeyshare.EditPage.java
cn.sharesdk.onekeyshare.FollowList.java
cn.sharesdk.onekeyshare.OnekeyShare.java
cn.sharesdk.onekeyshare.PicViewer.java
cn.sharesdk.onekeyshare.PlatformGridView.java
cn.sharesdk.onekeyshare.Shake2Share.java
cn.sharesdk.onekeyshare.ShareContentCustomizeCallback.java
cn.sharesdk.onekeyshare.ShareCore.java