一、首先是华为开发者中的处理
https://developer.huawei.com/consumer/cn/console/service/AppService
1、点击AppGallery Connect
2、点击我的项目
3、未添加应用前
这里有个小坑,未添加应用前是没有腾讯云说的agconnect-services.json文件的,这里浪费了我很长时间,更别说clientId 等信息了。
4、补充一点:做的事推送,则必须要选择推送服务,把想要的推送业务都开通,我开始也是闷着头搞,最后发现都没有开通推送的业务。
5、添加完应用后如下:
这里也有一点SHA256证书,记得一定要填,是通过应用的jks文件获取的。
二、腾讯云中的文档
https://cloud.tencent.com/document/product/269/75428
主要就是提取其中华为离线推送的部分
1、添加华为证书
这里也遇到一个坑,就是在华为开发者官网上找到的其实没有所谓的APPID和APPSecret。对应的由步骤一中的5里的client ID和client secret所代替。这里也花了很长时间处理。
到此华为开发者账号和腾讯云关于华为离线推送的都已写完,后面就是代码里的实现。
三、代码中的实现,配合二中的官方链接
1、清单文件配置厂商推送权限相关AndroidManifest.xml
<!-- 注意:TUIKitDemo 的 applicationId 是 com.tencent.qcloud.tim.tuikit,这里的 “xxxx” 需要替换您的应用的 applicationId。 -->
<!-- ********华为推送权限设置******** -->
<permission
android:name="xxxx.permission.PROCESS_PUSH_MSG"
android:protectionLevel="signatureOrSystem" />
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<uses-permission android:name="xxxx.permission.PROCESS_PUSH_MSG" />
<!-- ********华为推送设置start******** -->
<service
android:name="xxxx.HUAWEIHmsMessageService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT"/>
</intent-filter>
</service>
<!-- ********华为推送设置end******** -->
完全根据说明照搬,但是我没有将HUAWEIHmsMessageService放在app项目下,所以android:name="xxxx.HUAWEIHmsMessageService"这里的包名根据实际而定,并不需要一定是项目包名。
2、在项目级 build.gradle 文件中 buildscript -> dependencies 下添加以下配置:
classpath 'com.huawei.agconnect:agcp:1.4.1.300'
这里我也遇到了坑,我的AndroidStudio是新版本,引用方式有所改变。这里也花了很长时间。
具体可以看这个官方链接,对号入座就好。文档中心
我的配置如下:
(1)项目级根目录build.gradle
maven { url 'https://developer.huawei.com/repo/' }
classpath "com.android.tools.build:gradle:7.0.2" classpath 'com.huawei.agconnect:agcp:1.8.0.300'
(2) settings.gradle中配置如下:
maven { url 'https://developer.huawei.com/repo/' }
id 'com.huawei.agconnect'
(3)主项目下也要引用
id 'com.huawei.agconnect'
到此build集成基本是完成了。