版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Module的日常
声明
本文只记录了分享集成
|
参考文章 https://blog.csdn.net/apro_wang/article/details/79923526
效果图
账号准备
友盟 https://passport.umeng.com/
微博 https://open.weibo.com/
微信 https://open.weixin.qq.com/
企鹅 https://connect.qq.com/
集成
依赖
//友盟统计
compile 'com.umeng.sdk:common:1.5.1'
compile 'com.umeng.sdk:analytics:7.5.0'
//友盟社会化分享
compile 'com.umeng.sdk:share-core:6.9.1'
compile 'com.umeng.sdk:share-qq:6.9.1.1'
compile 'com.umeng.sdk:share-wechat:6.9.1'
compile 'com.umeng.sdk:share-sina:6.9.1'
//分享面板
compile 'com.umeng.sdk:shareboard-widget:6.9.1'
权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
QQ配置
app下的build.gradle中
defaultConfig {
applicationId "xxx"
minSdkVersion xx
targetSdkVersion xx
versionCode x
versionName "x.x"
manifestPlaceholders = [qqappid: "123456"]//此处配置自己的申请的qqappid
}
微信配置
在包名根目录下创建wxapi文件夹,新建WXEntryActivity继承WXCallbackActivity。
package 包根目录.wxapi;
import com.umeng.socialize.weixin.view.WXCallbackActivity;
public class WXEntryActivity extends WXCallbackActivity {
//此activity不做任何操作
}
在AndroidManifest中声明刚新建的WXEntryActivity
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
初始化
在application的onCreate中
public void onCreate() {
super.onCreate();
//初始化
UMConfigure.init(this,"你的应用在友盟上的APPKEY","umeng",UMConfigure.DEVICE_TYPE_PHONE,null);
//友盟相关平台配置
PlatformConfig.setWeixin("123456", "123456");//微信APPID和AppSecret
PlatformConfig.setQQZone("123456", "123456");//QQAPPID和AppSecret
PlatformConfig.setSinaWeibo("123456", "123456",null);//微博APPID和AppSecret
//开启debug
UMConfigure.setLogEnabled(true);
}
使用
初始化要分享的内容
//这里以图片举例
UMImage image= new UMImage(context, R.mipmap.ic_launcher);//分享图片
分享结果回调
UMShareListener umShareListener = new UMShareListener() {
@Override
public void onStart(SHARE_MEDIA platform) {
Toast.makeText(context, "开始分享", Toast.LENGTH_SHORT).show();
}
@Override
public void onResult(SHARE_MEDIA platform) {
Toast.makeText(context, "分享成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
Toast.makeText(context, "分享失败", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(context, "分享取消", Toast.LENGTH_SHORT).show();
}
};
发起分享
new ShareAction(context)
.setDisplayList(SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE, SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.SINA)
.setShareboardclickCallback(new ShareBoardlistener() {
@Override
public void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {
new ShareAction(context).setPlatform(share_media).withMedia(image).setCallback(umShareListener).share();
}
}).open();
更多分享消息类型请查看umeng官方文档:https://developer.umeng.com/docs/66632/detail/66639#h3-u5206u4EABu7684u6D88u606Fu7C7Bu578B