第一步,根据 https://www.yuque.com/docs/share/5cc561e9-b103-47a3-93c5-e91a0e4b2402?#
去华为开发者联盟填写app相关信息。
SHA256证书指纹需要安装jdk,按照https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/config-agc-0000001050166285#ZH-CN_TOPIC_0000001054452903__section10260203515546操作就行。
第二步,在项目里集成(https://www.yuque.com/docs/share/0f6327ce-da8f-488e-824a-7ca53890252d?#)
1:将开发者联盟下载的agconnect-services.json添加到应用app目录下。
2:在project的build.gradle里面添加华为相关规则
buildscript {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}//
}
}
buildscript {
dependencies {
classpath 'com.huawei.agconnect:agcp:1.2.1.301'//
}
}
allprojects {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}//
}
}
3:在module 的 build.gradle 文件里添加:
//华为厂商
implementation 'com.huawei.hms:push:4.0.2.300'
implementation 'cn.jiguang.sdk.plugin:huawei:3.6.6'//
注意,这个版本,应该和jpush SDK版本保持一致
implementation 'cn.jiguang.sdk:jpush:3.6.6'//
implementation 'cn.jiguang.sdk:jcore:2.3.8'
再在文件底部加入:
apply plugin: 'com.huawei.agconnect'
注意,在build.gradle中配置在华为后台添加的指纹证书对应的签名(这个一般都配置过)
release {
storeFile file("release.keystore")//签名文件的path
storePassword "123456"
keyAlias "android.keystore"
keyPassword "123456"
}
proguard-rules.pro里面加入混淆:
#华为厂商混淆
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
到了这,其实都配置完了,但是很郁闷的是,android studio的app上显示一个红叉,根本不能运行。点进入看,报的错是Warning: Default Activity not found
莫名其妙。。。
最后对比一下别的集成过华为厂商通道的项目,,发现,他的minSdkVersion 17,而我的这个是16,,改成17就好了,,汗。。
最后,按照 https://www.yuque.com/docs/share/0f6327ce-da8f-488e-824a-7ca53890252d?# 里面的华为厂商测试方法,
创建一个推送消息来验证,选择仅用厂商通道推送和指定registrationid,因为厂商通道推送,也会走极光推送,会发到普通用户手里,指定自己的registrationid就只发自己一个人。获取方法:JPushInterface.getRegistrationID(MainActivity.this)