极光推送华为厂商通道集成

第一步,根据 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)

你可能感兴趣的:(极光推送华为厂商通道集成)