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"/>