本文是基于3.+的版本,在集成4.+的版本中,集成
mid
包时遇到一个问题
Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 20 declared in library [com.tencent.mid:mid:4.0.7] C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\mid-4.0.7.aar\940566913b33e9d01791f180c556560b\AndroidManifest.xml as the library might be using APIs not available in 16
Suggestion: use a compatible library with a minSdk of at most 16,
or increase this project's minSdk version to at least 20,
or use tools:overrideLibrary="com.example.mid" to force usage (may lead to runtime failures)
要minSdk
最小为20,但是现阶段4.+的手机系统版本还是有不少的,放弃是不可能的,在Manifest
中配置uses-sdk
也是无果,直接集成3.+也并无大碍。
官方文档:http://xg.qq.com/docs/android_access/jcenter.html
创建应用
注册登录官网,添加应用,拿到配置参数
导入依赖
在app build.gradle
文件下配置 以下内容
android {
......
defaultConfig {
//信鸽官网上注册的包名.注意application ID 和当前的应用包名以及 信鸽官网上注册应用的包名必须一致。
applicationId "你的包名"
......
ndk {
//根据需要 自行选择添加的对应cpu类型的.so库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
manifestPlaceholders = [
XG_ACCESS_ID:"注册应用的accessid",
XG_ACCESS_KEY : "注册应用的accesskey",
]
......
}
......
}
dependencies {
......
//信鸽3.2.5之前版本无需单独依赖'com.tencent.jg:jg:1.1',其它三个依赖必须有。
//信鸽3.2.6 版本
//完整的信鸽依赖四个都必须有,如果发生依赖冲突请根据对应的依赖版本号选择高版本的依赖。(使用jcenter自动接入请确认libs中没有信鸽的相关jar包)
//信鸽jar
compile 'com.tencent.xinge:xinge:3.2.6-release'
//jg包
compile'com.tencent.jg:jg:1.1'
//wup包
compile 'com.tencent.wup:wup:1.0.0.E-release'
//mid包
compile 'com.tencent.mid:mid:4.0.6-release'
}
- 注意,这里是accessid,不是appid,Android端和ios端的参数配置是有区别的,后台需要的配置参数也是不一样的
如果遇到这个异常:
NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
则在 Project 根目录的 gradle.properties 文件中添加:
android.useDeprecatedNdk=true
开启debug日志数据
XGPushConfig.enableDebug(this,true);
token注册
XGPushManager.registerPush(this, new XGIOperateCallback() {
@Override
public void onSuccess(Object data, int flag) {
//token在设备卸载重装的时候有可能会变
Log.d("TPush", "注册成功,设备token为:" + data);
}
@Override
public void onFail(Object data, int errCode, String msg) {
Log.d("TPush", "注册失败,错误码:" + errCode + ",错误信息:" + msg);
}
});
注册成功会有打印,过滤"TPush"
设置账号
XGPushManager.bindAccount(getApplicationContext(), "XINGE");
设置标签
XGPushManager.setTag(this,"XINGE");
- 到此就基本完成了,不需要配置厂商通道,8.0也是测试通过的。
厂商通道呢,拿华为来说,去华为开发联盟 注册、登录、添加应用一顿操作(测试需要线上测试),然后拿着华为平台的应用参数去信鸽管理台配置参数,然后再在代码中配置华为的appid、依赖、启动华为推送、日志等 一顿操作。
之所以不详细介绍呢,是因为不配置厂商也可以。
其次呢,因为国内厂商的各种系统定制,搞的我们开发者适配很苦恼。
内心也是抗拒的,但是在工作中,碍于资本主义的猖狂,还是做的很开心的(狗头)。