第一步溶耘,根據(jù) https://www.yuque.com/docs/share/5cc561e9-b103-47a3-93c5-e91a0e4b2402?#
去華為開發(fā)者聯(lián)盟填寫app相關(guān)信息些阅。
SHA256證書指紋需要安裝jdk基显,按照https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/config-agc-0000001050166285#ZH-CN_TOPIC_0000001054452903__section10260203515546操作就行颁湖。
第二步足画,在項(xiàng)目里集成(https://www.yuque.com/docs/share/0f6327ce-da8f-488e-824a-7ca53890252d?#)
1:將開發(fā)者聯(lián)盟下載的agconnect-services.json添加到應(yīng)用app目錄下脐区。
2:在project的build.gradle里面添加華為相關(guān)規(guī)則
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'//
注意,這個(gè)版本颇玷,應(yīng)該和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中配置在華為后臺添加的指紋證書對應(yīng)的簽名(這個(gè)一般都配置過)
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.**{*;}
到了這就缆,其實(shí)都配置完了帖渠,但是很郁悶的是,android studio的app上顯示一個(gè)紅叉竭宰,根本不能運(yùn)行空郊。點(diǎn)進(jìn)入看,報(bào)的錯(cuò)是Warning: Default Activity not found
莫名其妙切揭。狞甚。。
最后對比一下別的集成過華為廠商通道的項(xiàng)目廓旬,哼审,發(fā)現(xiàn),他的minSdkVersion 17孕豹,而我的這個(gè)是16涩盾,,改成17就好了励背,春霍,汗。叶眉。
最后址儒,按照 https://www.yuque.com/docs/share/0f6327ce-da8f-488e-824a-7ca53890252d?# 里面的華為廠商測試方法芹枷,
創(chuàng)建一個(gè)推送消息來驗(yàn)證,選擇僅用廠商通道推送和指定registrationid莲趣,因?yàn)閺S商通道推送鸳慈,也會走極光推送,會發(fā)到普通用戶手里喧伞,指定自己的registrationid就只發(fā)自己一個(gè)人蝶涩。獲取方法:JPushInterface.getRegistrationID(MainActivity.this)