1.微信准备
第一步:注册开放平台账号
登录开放平台(open.weixin.qq.com),注册成为微信开放平台开发者
第二步:认证开放平台
开放平台需进行开发者资质认证后才可申请微信支付,认证费:300元/年;
(分享功能可以跳过此步)
第三步:创建APP
提交APP基本信息
1应用名称,
2应用描述,
3应用官网,
4应用图标(28和108尺寸),
5应用签名(需下载输入包名出签名的软件工具,调试期间应用工程内debug.keystore),
6应用包名
通过开放平台应用审核(3-7日,一般3天)
获得AppID和AppSecret
签名和包名弄做了可以修改
微信分享功能所需要的准备工作完毕!
2.友盟准备
创建应用
填写信息
获得APPID,去下载最新SDK
下载
share中的东西重要,common(基础)包可以maven引入,最后一个是组件化三方库
点开share,main和platforms文件夹中的jar和res都放到工程中对应的文件夹中
注意:友盟中所谓的自动集成和手动集成的差别仅仅在于common这个包的引用,其他的包和三方的东西还是都要手动集成的.(也就是平台中的东西都要放到相应的文件夹下)
友盟准备工作完毕!
3.代码集成
目录结构
1.友盟分享和微信分享的必要jar包必须添加
2.微信回调必要页面
3.友盟自带一些图片资源
4.分享的布局
项目的build.gradle中添加
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
APP的build.gradle中
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.umeng.sdk:common:latest.integration'
compile 'com.umeng.sdk:utdid:1.1.5.3'
}
权限
<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"/>
动态权限
if(Build.VERSION.SDK_INT>=23){
String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CALL_PHONE,
Manifest.permission.READ_LOGS,Manifest.permission.READ_PHONE_STATE,
Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.SET_DEBUG_APP,
Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.GET_ACCOUNTS,
Manifest.permission.WRITE_APN_SETTINGS};
ActivityCompat.requestPermissions(this,mPermissionList,123);
}
微信回调页面注册
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
初始化友盟(友盟appkey,渠道.设备类型手机等参数)
UMConfigure.init(this,"5b6d2281a40fa3059a00031f" ,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"");
设置Log可见
UMConfigure.setLogEnabled(true);
分享图片
private void sendWX() {
UMImage image = new UMImage(MainActivity.this, R.drawable.umeng_socialize_share_video);//资源文件
UMImage thumb = new UMImage(this, R.drawable.umeng_socialize_share_video);//缩略图
image.setThumb(thumb);
new ShareAction(MainActivity.this)
.setPlatform(SHARE_MEDIA.WEIXIN)//传入平台
.withText("分享测试")//分享内容
.withMedia(image)
.setCallback(umShareListener)//回调监听器
.share();
}
回调监听
private UMShareListener umShareListener = new UMShareListener() {
/**
* @descrption 分享开始的回调
* @param platform 平台类型
*/
@Override
public void onStart(SHARE_MEDIA platform) {
}
/**
* @descrption 分享成功的回调
* @param platform 平台类型
*/
@Override
public void onResult(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this,"分享成功",Toast.LENGTH_LONG).show();
}
/**
* @descrption 分享失败的回调
* @param platform 平台类型
* @param t 错误原因
*/
@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
Toast.makeText(MainActivity.this,"分享失败"+t.getMessage(),Toast.LENGTH_LONG).show();
}
/**
* @descrption 分享取消的回调
* @param platform 平台类型
*/
@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this,"分享取消",Toast.LENGTH_LONG).show();
}
};
就此,友盟下的微信分享集成完毕,
第一次写过程,一来记录一下,二来是因为无论友盟还是微信都更新的太快了,而文档又不是很容易理解,我就耽误在文档上面浪费了很多时间,希望大家少走弯路.
如果有错误请指出,我会尽快完善的
demo亲测可以分享
下载地址:https://download.youkuaiyun.com/download/qq_23237191/10606217