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