一、首先是华为开发者中的处理

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集成基本是完成了。

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐