1.添加sdk和res
將sdk里面的jar和資源拷貝到項(xiàng)目中:
1.G:\三方\友盟\sdk\Android\analytics\analytics_android_8.0.2:統(tǒng)計的sdk
2.G:\三方\友盟\sdk\Android\common\common_android_2.0.2\normal,基礎(chǔ)的sdk(必須)
3.G:\三方\友盟\sdk\Android\share\share_android_6.9.4:分享的sdk
4.配置完成后:libs+圖片+布局+values對應(yīng)都有相應(yīng)的資源
2.清單文件
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent100424468" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"/>
3.Android6.0權(quán)限適配
if (Build.VERSION.SDK_INT>Build.VERSION_CODES.M){
String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,};
ActivityCompat.requestPermissions(this,mPermissionList,123);
}
4.初始化設(shè)置
@Override
public void onCreate() {
super.onCreate();
UMConfigure.init(this,"5a12384aa40fa3551f0001d1","umeng",UMConfigure.DEVICE_TYPE_PHONE,"");
//58edcfeb310c93091c000be2 5965ee00734be40b580001a0
/**
* 設(shè)置組件化的Log開關(guān)
* 參數(shù): boolean 默認(rèn)為false,如需查看LOG設(shè)置為true
*/
UMConfigure.setLogEnabled(true);
}
5.創(chuàng)建BaseApp
public class BaseApp extends Application {
@Override
public void onCreate() {
super.onCreate();
1 PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
2 //豆瓣RENREN平臺目前只能在服務(wù)器端配置
3
PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad","http://sns.whalecloud.com");
4
PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
5
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
6
PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
7
PlatformConfig.setAlipay("2015111700822536");
8
PlatformConfig.setLaiwang("laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
9
PlatformConfig.setPinterest("1439206");
10
PlatformConfig.setKakao("e4f60e065048eb031e235c806b31c70f");
11
PlatformConfig.setDing("dingoalmlnohc0wggfedpk");
12
PlatformConfig.setVKontakte("5764965","5My6SNliAaLxEm3Lyd9J");
13
PlatformConfig.setDropbox("oz8v5apet3arcdy","h7p2pjbzkkxt02a");
14
PlatformConfig.setYnote("9c82bf470cba7bd2f1819b0ee26f86c6ce670e9b");
}
}
6.簽名在依賴中添加
android {
...
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
}
}
7.分享
分享(帶面板,帶圖片)
public void shareBorad(){
UMImage image = new UMImage(MainActivity.this, "http://ww2.sinaimg.cn/large/7a8aed7bgw1essxtqxs6jj20mj0tzdhl.jpg");
image.compressStyle = UMImage.CompressStyle.QUALITY;
new ShareAction(MainActivity.this)
.withText("hello")
.withMedia(image)
.setDisplayList(SHARE_MEDIA.SINA, SHARE_MEDIA.QQ, SHARE_MEDIA.WEIXIN)
.setCallback(shareListener).open();
}
分享(不帶面板,帶圖片)
private void share(SHARE_MEDIA media) {
UMImage image = new UMImage(MainActivity.this, "http://ww2.sinaimg.cn/large/7a8aed7bgw1essxtqxs6jj20mj0tzdhl.jpg");
image.compressStyle = UMImage.CompressStyle.QUALITY;
new ShareAction(MainActivity.this)
.setPlatform(media)//傳入平臺
.withText("hello")//分享內(nèi)容
.withMedia(image)
.setCallback(shareListener)//回調(diào)監(jiān)聽器
.share();
}
//分享
private UMShareListener shareListener = new UMShareListener() {
/**
* @descrption 分享開始的回調(diào)
* @param platform 平臺類型
*/
@Override
public void onStart(SHARE_MEDIA platform) {
}
/**
* @descrption 分享成功的回調(diào)
* @param platform 平臺類型
*/
@Override
public void onResult(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this, "成功了", Toast.LENGTH_LONG).show();
}
/**
* @descrption 分享失敗的回調(diào)
* @param platform 平臺類型
* @param t 錯誤原因
*/
@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
Toast.makeText(MainActivity.this, "失敗" + t.getMessage(), Toast.LENGTH_LONG).show();
}
/**
* @descrption 分享取消的回調(diào)
* @param platform 平臺類型
*/
@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show();
}
};
8.登錄
private void login(SHARE_MEDIA mode) {
UMShareAPI umShareAPI = UMShareAPI.get(this);
umShareAPI.getPlatformInfo(MainActivity.this, mode, authListener);
}
//登錄
UMAuthListener authListener = new UMAuthListener() {
/**
* @desc 授權(quán)開始的回調(diào)
* @param platform 平臺名稱
*/
@Override
public void onStart(SHARE_MEDIA platform) {
}
/**
* @desc 授權(quán)成功的回調(diào)
* @param platform 平臺名稱
* @param action 行為序號,開發(fā)者用不上
* @param data 用戶資料返回
*/
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
Toast.makeText(MainActivity.this, "成功了", Toast.LENGTH_LONG).show();
}
/**
* @desc 授權(quán)失敗的回調(diào)
* @param platform 平臺名稱
* @param action 行為序號,開發(fā)者用不上
* @param t 錯誤原因
*/
@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
Toast.makeText(MainActivity.this, "失敗:" + t.getMessage(), Toast.LENGTH_LONG).show();
}
/**
* @desc 授權(quán)取消的回調(diào)
* @param platform 平臺名稱
* @param action 行為序號,開發(fā)者用不上
*/
@Override
public void onCancel(SHARE_MEDIA platform, int action) {
Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show();
}
};
9.內(nèi)存泄漏解決方案
@Override
protected void onDestroy() {
super.onDestroy();
UMShareAPI.get(this).release();
}