1、注册友盟帐号
2、创建项目
3、下载SDK
4、将main文件夹下的资源全部粘贴到项目中
一、CustomShareBoard.java分享选项对话框及其事件
public class CustomShareBoard extends PopupWindow implements OnClickListener {
private UMSocialService mController = UMServiceFactory.getUMSocialService(Constants.DESCRIPTOR);
private Activity mActivity;
public CustomShareBoard(Activity activity) {
super(activity);
this.mActivity = activity;
initView(activity);
}
@SuppressWarnings("deprecation")
private void initView(Context context) {
View rootView = LayoutInflater.from(context).inflate(R.layout.custom_board, null);
rootView.findViewById(R.id.wechat).setOnClickListener(this);
rootView.findViewById(R.id.wechat_circle).setOnClickListener(this);
rootView.findViewById(R.id.qq).setOnClickListener(this);
rootView.findViewById(R.id.qzone).setOnClickListener(this);
setContentView(rootView);
setWidth(LayoutParams.MATCH_PARENT);
setHeight(LayoutParams.WRAP_CONTENT);
setFocusable(true);
setBackgroundDrawable(new BitmapDrawable());
setTouchable(true);
}
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.wechat:
performShare(SHARE_MEDIA.WEIXIN);
break;
case R.id.wechat_circle:
performShare(SHARE_MEDIA.WEIXIN_CIRCLE);
break;
case R.id.qq:
performShare(SHARE_MEDIA.QQ);
break;
case R.id.qzone:
performShare(SHARE_MEDIA.QZONE);
break;
default:
break;
}
}
private void performShare(SHARE_MEDIA platform) {
mController.postShare(mActivity, platform, new SnsPostListener() {
@Override
public void onStart() {}
@Override
public void onComplete(SHARE_MEDIA platform, int eCode, SocializeEntity entity) {
String showText = platform.toString();
if (eCode == StatusCode.ST_CODE_SUCCESSED) {
showText += "平台分享成功";
} else {
showText += "平台分享失败";
}
Toast.makeText(mActivity, showText, Toast.LENGTH_SHORT).show();
dismiss();
}
});
}
}
二、定义应用相关常量 Contants.java
public class Constants {
public static final String DESCRIPTOR = "com.umeng.share";
private static final String TIPS = "请移步官方网站 “;
private static final String END_TIPS = ", 查看相关说明.";
public static final String TENCENT_OPEN_URL = TIPS + "http://wiki.connect.qq.com/android_sdk使用说明" + END_TIPS;
public static final String PERMISSION_URL = TIPS + "http://wiki.connect.qq.com/openapi权限申请" + END_TIPS;
public static final String SOCIAL_LINK = "http://www.umeng.com/social";
public static final String SOCIAL_TITLE = "友盟社会化组件帮助应用快速整合分享功能";
public static final String SOCIAL_IMAGE = "http://www.umeng.com/images/pic/banner_module_social.png";
public static final String SOCIAL_CONTENT = "友盟社会化组件(SDK)让移动应用快速整合社交分享功能,我们简化了社交平台的接入,为开发者提供坚实的基础服务:(一)支持各大主流社交平台,"+ "(二)支持图片、文字、gif动图、音频、视频;@好友,关注官方微博等功能" + "(三)提供详尽的后台用户社交行为分析。http://www.umeng.com/social";
}
三、微信回调.wxapi.WXEntryActivity.java
public class WXEntryActivity extends WXCallbackActivity {}
四、ShareFragment.java 设置分享平台和所分享的资源
public final UMSocialService mController = UMServiceFactory
.getUMSocialService(com.loda.blueantique.share.bean.Constants.DESCRIPTOR);
// 配置需要分享的相关平台
public void configPlatforms() {
/**
* 配置分享平台参数</br>
*/
// 添加新浪SSO授权
mController.getConfig().setSsoHandler(new com.umeng.socialize.sso.SinaSsoHandler());
mController.getConfig().closeToast();
// 添加QQ、QZone平台
addQQQZonePlatform();
// 添加微信、微信朋友圈平台
addWXPlatform();
}
/**
* @功能描述 : 添加QQ平台支持 QQ分享的内容, 包含四种类型, 即单纯的文字、图片、音乐、视频. 参数说明 : title, summary,
* image url中必须至少设置一个, targetUrl必须设置,网页地址必须以"http://"开头 . title :
* 要分享标题 summary : 要分享的文字概述 image url : 图片地址 [以上三个参数至少填写一个] targetUrl
* : 用户点击该分享时跳转到的目标地址 [必填] ( 若不填写则默认设置为友盟主页 )
* @return
*/
private void addQQQZonePlatform() {
String appId = "1104746222";
String appKey = "yoLC1aqLsReRuuLa";
// 添加QQ支持, 并且设置QQ分享内容的target url
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(AppContext.getContext(), appId, appKey);
qqSsoHandler.setTargetUrl("http://www.umeng.com/social");
qqSsoHandler.addToSocialSDK();
// 添加QZone平台
QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(AppContext.getContext(), appId, appKey);
qZoneSsoHandler.addToSocialSDK();
}
/**
* @功能描述 : 添加微信平台分享
* @return
*/
private void addWXPlatform() {
// 注意:在微信授权的时候,必须传递appSecret
// wx967daebe835fbeac是你在微信开发平台注册应用的AppID, 这里需要替换成你注册的AppID
String appId = "wx7696178b7765d8ssd";// "wx967daebe835fssssa";
String appSecret = "4969b2cab9b2541762f733f489fba162";// "5bb696d9ccd75a38c8a0bfe0675559b3";
// 添加微信平台
UMWXHandler wxHandler = new UMWXHandler(AppContext.getContext(), appId, appSecret);
wxHandler.addToSocialSDK();
// 支持微信朋友圈
UMWXHandler wxCircleHandler = new UMWXHandler(AppContext.getContext(), appId, appSecret);
wxCircleHandler.setToCircle(true);
wxCircleHandler.addToSocialSDK();
}
五、AndroidManifest.xml 配置注册文件
(1)、权限设置
<!-- ###################声明SDK使用的相关权限###################### -->
<!-- 检测网络状态 —>
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- 获取mac地址作为用户的备用唯一标识 -->
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
<!-- 获取用户手机的IMEI,用来唯一的标识用户 -->
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
<!-- 缓存资源优先存入SDcard -->
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 允许应用程序联网,以便向我们的服务器端发送数据 -->
<uses-permissionandroid:name="android.permission.INTERNET"/>
<!-- QQ、QQ空间所需权限 -->
<uses-permissionandroid:name="android.permission.GET_TASKS"/>
(2)、友盟注册
<!-- 友盟AppKey, 需要替换成你自己的 -->
<meta-data
android:name="UMENG_APPKEY"
android:value="4eaea02c527015373b0003423">
</meta-data>
(3)、添加各自的分享页
<!-- 4eaee02c527015373b000022 -->
<!-- android:value="52a98cf856240b902211203e" > -->
<!-- 微博分享内容编辑页 -->
<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>
<!-- 腾讯SSO授权的Activity注册 -->
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true">
<intent-filter>
<actionandroid:name="android.intent.action.VIEW"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<categoryandroid:name="android.intent.category.BROWSABLE"/>
<dataandroid:scheme="tencent1004234223"/>
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:screenOrientation="portrait"
android:theme=“@android:style/Theme.Translucent.NoTitleBar"
/>
<!-- 微信回调activity -->
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>