记录自己学习的点滴
需要导入的外部的包根据要分享的平台,这里指添加了微信和qq的
然后像代码里 oncreate 方法里
// 配置需要分享的相关平台
configPlatforms();
// 设置分享的内容
setShareContent();
点击事件中:
case R.id.one_key_share:
mController.getConfig().setPlatforms(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,
SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE, SHARE_MEDIA.SINA, SHARE_MEDIA.TENCENT,
SHARE_MEDIA.DOUBAN,
SHARE_MEDIA.RENREN);
mController.openShare(getActivity(), false);
break;
/**
* 配置分享平台参数</br>
*/
private void configPlatforms() {
// 添加QQ、QZone平台
addQQQZonePlatform();
// 添加微信、微信朋友圈平台
addWXPlatform();
}
/**
* @功能描述 : 添加QQ平台支持 QQ分享的内容, 包含四种类型, 即单纯的文字、图片、音乐、视频. 参数说明 : title, summary,
* image url中必须至少设置一个, targetUrl必须设置,网页地址必须以"http://"开头 . title :
* 要分享标题 summary : 要分享的文字概述 image url : 图片地址 [以上三个参数至少填写一个] targetUrl
* : 用户点击该分享时跳转到的目标地址 [必填] ( 若不填写则默认设置为友盟主页 )
* @return
*/
private void addQQQZonePlatform() {
String appId = "";
String appKey = "";
// 添加QQ支持, 并且设置QQ分享内容的target url
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(getActivity(),
appId, appKey);
qqSsoHandler.setTargetUrl("http://www.umeng.com/social");
qqSsoHandler.addToSocialSDK();
// 添加QZone平台
QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(getActivity(), appId, appKey);
qZoneSsoHandler.addToSocialSDK();
}
/**
* @功能描述 : 添加微信平台分享
* @return
*/
private void addWXPlatform() {
// 注意:在微信授权的时候,必须传递appSecret
// wx967daebe835fbeac是你在微信开发平台注册应用的AppID, 这里需要替换成你注册的AppID
String appId = "";
String appSecret = "";
// 添加微信平台
UMWXHandler wxHandler = new UMWXHandler(getActivity(), appId, appSecret);
wxHandler.addToSocialSDK();
// 支持微信朋友圈
UMWXHandler wxCircleHandler = new UMWXHandler(getActivity(), appId, appSecret);
wxCircleHandler.setToCircle(true);
wxCircleHandler.addToSocialSDK();
}
/**
* 根据不同的平台设置不同的分享内容</br>
*/
private void setShareContent() {
QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(getActivity(),
"100424468", "c7394704798a158208a74ab60104f0ba");
qZoneSsoHandler.addToSocialSDK();
mController.setShareContent("斗地主婆,你值得拥有!!");
UMImage localImage = new UMImage(getActivity(), R.drawable.device);
UMImage urlImage = new UMImage(getActivity(),
"http://www.umeng.com/images/pic/social/integrated_3.png");
// UMImage resImage = new UMImage(getActivity(), R.drawable.icon);
// 视频分享
UMVideo video = new UMVideo(
"http://v.youku.com/v_show/id_XNTc0ODM4OTM2.html");
// vedio.setThumb("http://www.umeng.com/images/pic/home/social/img-1.png");
video.setTitle("分享");
video.setThumb(urlImage);
UMusic uMusic = new UMusic(
"http://music.huoxing.com/upload/20130330/1364651263157_1085.mp3");
uMusic.setAuthor("umeng");
uMusic.setTitle("天籁之音");
// uMusic.setThumb(urlImage);
uMusic.setThumb("http://www.umeng.com/images/pic/social/chart_1.png");
// UMEmoji emoji = new UMEmoji(getActivity(),
// "http://www.pc6.com/uploadimages/2010214917283624.gif");
// UMEmoji emoji = new UMEmoji(getActivity(),
// "/storage/sdcard0/emoji.gif");
WeiXinShareContent weixinContent = new WeiXinShareContent();
weixinContent
.setShareContent("欢迎来到斗地主婆的世界");
weixinContent.setTitle("分享-微信");
weixinContent.setTargetUrl("http://www.umeng.com/social");
weixinContent.setShareMedia(urlImage);
mController.setShareMedia(weixinContent);
// 设置朋友圈分享的内容
CircleShareContent circleMedia = new CircleShareContent();
circleMedia
.setShareContent("斗地主婆,有你有我有他,我们共同的家");
circleMedia.setTitle("分享-朋友圈");
circleMedia.setShareMedia(urlImage);
// circleMedia.setShareMedia(uMusic);
// circleMedia.setShareMedia(video);
circleMedia.setTargetUrl("http://www.umeng.com/social");
mController.setShareMedia(circleMedia);
// 设置renren分享内容
RenrenShareContent renrenShareContent = new RenrenShareContent();
renrenShareContent.setShareContent("人人分享内容");
UMImage image = new UMImage(getActivity(),
BitmapFactory.decodeResource(getResources(), R.drawable.device));
image.setTitle("thumb title");
image.setThumb("http://www.umeng.com/images/pic/social/integrated_3.png");
renrenShareContent.setShareImage(image);
renrenShareContent.setAppWebSite("http://www.umeng.com/social");
mController.setShareMedia(renrenShareContent);
UMImage qzoneImage = new UMImage(getActivity(),
"http://www.umeng.com/images/pic/social/integrated_3.png");
qzoneImage
.setTargetUrl("http://www.umeng.com/images/pic/social/integrated_3.png");
// 设置QQ空间分享内容
QZoneShareContent qzone = new QZoneShareContent();
qzone.setShareContent("share test");
qzone.setTargetUrl("http://www.umeng.com");
qzone.setTitle("QZone title");
qzone.setShareMedia(urlImage);
// qzone.setShareMedia(uMusic);
mController.setShareMedia(qzone);
video.setThumb(new UMImage(getActivity(), BitmapFactory.decodeResource(
getResources(), R.drawable.device)));
QQShareContent qqShareContent = new QQShareContent();
qqShareContent.setShareContent("爱的分享,——斗地主婆");
qqShareContent.setTitle("hello, title");
qqShareContent.setShareMedia(image);
qqShareContent.setTargetUrl("http://www.umeng.com/social");
mController.setShareMedia(qqShareContent);
// 视频分享
UMVideo umVideo = new UMVideo(
"http://v.youku.com/v_show/id_XNTc0ODM4OTM2.html");
umVideo.setThumb("http://www.umeng.com/images/pic/home/social/img-1.png");
umVideo.setTitle("分享视频");
TencentWbShareContent tencent = new TencentWbShareContent();
tencent.setShareContent("斗地主婆起飞吧");
// 设置tencent分享内容
mController.setShareMedia(tencent);
SinaShareContent sinaContent = new SinaShareContent();
sinaContent
.setShareContent("有一种斗地主叫做斗地主婆");
mController.setShareMedia(sinaContent);
}
在manifest配置文件中加入
<meta-data
android:name="UMENG_APPKEY"
android:value="553df58167e58eda19000656" />
<activity
android:name="com.umeng.socialize.view.ShareActivity"
android:configChanges="orientation|keyboard"
android:launchMode="singleTask"
android:noHistory="true"
android:theme="@style/Theme.UMDialog"
android:windowSoftInputMode="stateVisible|adjustResize" />
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
......
如果不用第三方sdk,如微信分享
第二步:导入微信支持jar文件
第一步:去微信开放平台(https://open.weixin.qq.com/)创建应用,并拿到AppId。
第三步:发送图文消息到微信朋友圈(按钮触发事件里加入以下代码,请确保应用签名与在开放平台注册的应用签名一致,对于微信app必须签名才能分享,且AppId也应该对应)
IWXAPI api = WXAPIFactory.createWXAPI(context, APP_ID, false);
webpage.webpageUrl = "
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = "分享的title";
msg.description = "分享内容";
try
{
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.accept);
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 150, 150, true);
bmp.recycle();
msg.setThumbImage(thumbBmp);
}
catch (Exception e)
{
e.printStackTrace();
}
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneTimeline;
api.sendReq(req);
break;
第四步:加提示回调界面
新建一个 一个包,包名是你程序包加上wxapi,在新建的包里新建一个类WXEntryActivity.java名字必须一致,这是微信开放平台规定的
private IWXAPI api;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, false);
api.registerApp(Constants.APP_ID);
api.handleIntent(getIntent(), this);
}
@Override
public void onReq(BaseReq req)
{}
public void onResp(BaseResp resp){
int result = 0;
switch (resp.errCode)
{
case BaseResp.ErrCode.ERR_OK:
result = R.string.errcode_success;
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
result = R.string.errcode_cancel;
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
result = R.string.errcode_deny;
break;
default:
result = R.string.errcode_unknown;
break;
}
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
finish();
}