android 分享到微博微信qq空間工具類


/**
 * 分享到新浪微博
 * 
 * @param mWeiboShareAPI
 * @param context
 * @param shareTitle
 * @param shareSummary
 * @param shareUrl
 * @param picBitmap
 */

public static void shareSina(IWeiboShareAPI mWeiboShareAPI,
      Context context, String shareTitle, String shareSummary,
      String shareUrl, Bitmap picBitmap) {
   // 註冊微博
   mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(context,
         Global.SINA_APP_KEY);//應用申請的微博分享的appkey
   mWeiboShareAPI.registerApp();
   if (mWeiboShareAPI.isWeiboAppSupportAPI()) {
      int supportApi = mWeiboShareAPI.getWeiboAppSupportAPI();
      if (supportApi >= 10351) {
         mWeiboShareAPI.sendRequest(sendMultiMessage(shareTitle,
               shareSummary, shareUrl, picBitmap));
      } else {
         mWeiboShareAPI.sendRequest(sendSingleMessage(shareTitle,
               shareSummary, shareUrl));
      }
   }
}

private static BaseRequest sendSingleMessage(String shareTitle,
      String shareSummary, String shareUrl) {
   // 分享網址
   WeiboMessage weiboMessage = new WeiboMessage();
   TextObject textObject = new TextObject();
   textObject.text = shareTitle + " " + shareSummary + shareUrl;
   weiboMessage.mediaObject = textObject;
   SendMessageToWeiboRequest request = new SendMessageToWeiboRequest();
   request.transaction = String.valueOf(System.currentTimeMillis());
   request.message = weiboMessage;
   return request;

}

// 分享多條消息--文字,圖片,網頁
private static BaseRequest sendMultiMessage(String shareTitle,
      String shareSummary, String shareUrl, Bitmap picBitmap) {
   WeiboMultiMessage multiMessage = new WeiboMultiMessage();
   // 分享文字
   TextObject textObject = new TextObject();
   textObject.text = shareTitle + "\r\n" + shareSummary + shareUrl;
   multiMessage.textObject = textObject;
   // 分享圖片
   ImageObject imageObject = new ImageObject();
   imageObject.setImageObject(picBitmap);
   multiMessage.imageObject = imageObject;
   // 初始化從第三方到微博的消息請求
   SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest();
   // transaction唯一標識一個請求
   request.transaction = String.valueOf(System.currentTimeMillis());
   request.multiMessage = multiMessage;
   return request;

}
/**
 * 分享到微信好友
 * 
 * @param shareUrl
 * @param shareTitle
 * @param shareSummary
 * @param picBitMap
 * @param
 * @return
 */
public static void shareToWeiXinId(IWXAPI wxapi, String shareUrl,
      String shareTitle, String shareSummary, Bitmap picBitMap) {
   WXWebpageObject webpage = new WXWebpageObject();
   webpage.webpageUrl = shareUrl;
   WXMediaMessage msg = new WXMediaMessage(webpage);
   msg.title = shareTitle;
   msg.description = shareSummary;
   msg.thumbData = bmpToByteArray(picBitMap);
   SendMessageToWX.Req req = new SendMessageToWX.Req();
   req.transaction = "webpage" + System.currentTimeMillis();
   req.message = msg;
   req.scene = SendMessageToWX.Req.WXSceneSession;
   if (judgeIs()) {

   } else {
      CommonFunction.showToast("未安裝微信");
   }
   wxapi.sendReq(req);
}

/**
 * 分享到微信朋友圈
 * 
 * @param shareUrl
 * @param shareTitle
 * @param shareSummary
 * @param picBitMap
 * @return
 */
public static void shareToFriendId(IWXAPI wxapi, String shareUrl,
      String shareTitle, String shareSummary, Bitmap picBitMap) {
   WXWebpageObject webpage1 = new WXWebpageObject();
   webpage1.webpageUrl = shareUrl;
   final WXMediaMessage msg1 = new WXMediaMessage(webpage1);
   msg1.title = shareTitle;
   msg1.description = shareSummary;
   msg1.thumbData = bmpToByteArray(picBitMap);
   SendMessageToWX.Req req1 = new SendMessageToWX.Req();
   req1.transaction = "webpage" + System.currentTimeMillis();
   req1.message = msg1;
   req1.scene = SendMessageToWX.Req.WXSceneTimeline;
   if (judgeIs()) {

   } else {
      CommonFunction.showToast("未安裝微信");
   }
   wxapi.sendReq(req1);
}

// 判斷微信是否有安裝
public static boolean judgeIs() {
   try {
      PackageManager manager = ENameApplication.getInstance()
            .getPackageManager();
      PackageInfo info = manager.getPackageInfo("com.tencent.mm",
            PackageManager.GET_ACTIVITIES);
      if (info != null) {
         return true;
      } else {

      }
   } catch (Exception e) {
   }
   return false;
}

// 將圖片轉換成字節數組--微信分享圖片大小不超過32k
public static byte[] bmpToByteArray(final Bitmap bmp) {

   ByteArrayOutputStream output = new ByteArrayOutputStream();
   int position = 100;
   bmp.compress(CompressFormat.JPEG, position, output);
   while (output.size() / 1024 >= 32) {
      output.reset();
      position -= 5;
      bmp.compress(CompressFormat.JPEG, position, output);
   }
   byte[] result = output.toByteArray();
   try {
      output.close();
   } catch (Exception e) {
      e.printStackTrace();
   }
   return result;
}

//qq空間
// 註冊qq
Tencent mTencent = Tencent.createInstance(UserInfo.APP_ID,
OfficeDetailActivity.this);
final Bundle mBundle = new Bundle();
mBundle.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE,
      QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT);
mBundle.putString(QzoneShare.SHARE_TO_QQ_TITLE, shareTitle);
mBundle.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, shareSummary);
mBundle.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL, shareUrl);
ArrayList<String> imageUrls = new ArrayList<String>();
if (sharePicUrl != null && !sharePicUrl.equals("")) {
   imageUrls.add(sharePicUrl);
} else {
   imageUrls.add("http://www.ename.com/static/beta2/pic/logo.jpg");
}
mBundle.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL,
      imageUrls);
ThreadManager.getMainHandler().post(new Runnable() {

   @Override
   public void run() {
      if (null != mTencent) {
         mTencent.shareToQzone(context,
               mBundle, new BaseUiListener());
      }
   }
});



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章