Пример #1
0
  /**
   * 发送分享
   *
   * @param mContext app上下文
   * @param shareContentMeta 分享内容元数据
   * @param isMultiple 是否同时发送多种数据
   * @param shareEntry 分享入口,目前有网页文本、网页图片、屏幕截图、书签、历史、下载管理几个入口
   * @param isCheckPriority 是否需要检查分享优先级
   * @return 是否分享成功
   */
  public static boolean sendShare(
      Context mContext,
      BdSharerOM shareContentMeta,
      boolean isMultiple,
      int shareEntry,
      boolean isCheckPriority) {

    if (shareContentMeta == null || shareContentMeta.getContent() == null) {
      BdLog.e("shareContentMeta is null.");
      return false;
    }

    String action = "android.intent.action.SEND";
    Intent intent = new Intent(action);
    // 不管有没有附件,都设置文本信息,第三方软件图片分享可能会不支持android.intent.extra.TEXT
    // 如果有文字,则分享文字
    intent.putExtra("android.intent.extra.TEXT", shareContentMeta.getContent());
    BdLog.d(shareContentMeta.getContent());
    int contentType = shareContentMeta.getContentType();
    if (contentType == BdSharerOM.TYPE_TEXT) {
      intent.setType("text/plain");
    }

    Intent intent2 = Intent.createChooser(intent, mContext.getString(R.string.share_channel));
    try {
      if (mContext instanceof Activity) {
        Activity act = (Activity) mContext;
        act.startActivityForResult(intent2, shareEntry);
      }
    } catch (ActivityNotFoundException e) {
      BdLog.e("share app not found.", e);
      return false;
    } catch (Exception e) {
      BdLog.e("share exception.", e);
      return false;
    }
    return true;
  }