1. 程式人生 > >Android 分享工具類

Android 分享工具類

/**
    * 分享到新浪微博
    *
    * @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()); } } });