Android集成华为推送教程

Posted 中控易动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android集成华为推送教程相关的知识,希望对你有一定的参考价值。

前言

目前android应用在后台杀死进程之后,就收不到通知了,想要接收消息推送,需要集成各个厂商的推送SDK,本次讲解华为集成最新教程

1.配置AppGallery Connect
1)注册成为开发者
在开发应用前需要在华为开发者联盟网站上注册成为开发者并完成实名认证,具体方法请参见帐号注册认证。注册完之后创建项目和创建应用。

2)生成签名证书指纹
签名证书指纹用于校验应用的真实性,您需要根据签名证书在本地生成签名证书指纹,并在应用上架前将签名证书指纹配置到AppGallery Connect。
官方给的方式太复杂,建议用Android studio生成jks签名文件就行了,然后获取其SHA256指纹,如图:

3)配置签名证书指纹
点击我的项目,在项目列表中点击需要配置签名证书指纹的应用,如图:


配置完成记得点击后面的对勾。
4)设置数据处理位置
您使用推送服务需要设置默认数据处理位置,如果不设置,基于主题、ios应用的发送功能将不可用。当前支持选择的区域有中国、德国、俄罗斯和新加坡。如果设置的数据处理位置与您的服务器位置不一致,或者设置的数据处理位置与应用所服务的用户所在地不一致,都会导致推送消息下发时延增加。
5)开通推送服务
点击您的项目,前往“项目设置 > API管理”中开启“推送服务”权限。

在左侧导航栏选择“增长 > 推送服务”,点击“立即开通”,在弹出的提示框中点击“确定”。

2.集成HMS Core SDK
1)在“项目设置 > 常规”页面的“应用”区域,点击“agconnect-services.json”下载配置文件。

2)将“agconnect-services.json”文件拷贝到应用级根目录下。

3)打开Android Studio项目级“build.gradle”文件。

添加HUAWEI agcp插件以及Maven代码库。
在“buildscript > repositories”中配置HMS Core SDK的Maven仓地址。
在“allprojects > repositories”中配置HMS Core SDK的Maven仓地址。
如果App中添加了“agconnect-services.json”文件则需要在“buildscript > dependencies”中增加agcp插件配置。

buildscript {
    repositories {
        google()
        jcenter()
        // 配置HMS Core SDK的Maven仓地址。
        maven {url 'https://developer.huawei.com/repo/'}
    }
    dependencies {
        ...
        // 增加agcp插件配置。
        classpath 'com.huawei.agconnect:agcp:1.4.2.300'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        // 配置HMS Core SDK的Maven仓地址。
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

4)打开应用级的“build.gradle”文件。

在“dependencies”中添加如下编译依赖。

dependencies {
    implementation 'com.huawei.hms:push:{version}'
}

添加agcp插件配置。请根据实际情况选择:
方式一:在文件头部声明下一行添加如下配置。

apply plugin: 'com.huawei.agconnect'

方式二:在plugins中添加如下配置。

plugins {
    id 'com.android.application'
    // 添加如下配置
    id 'com.huawei.agconnect'
}

3.配置Manifest文件
您需要在“AndroidManifest.xml”文件的“application”标签下注册您自己的“service”,用于接收透传消息、获取Token。该“service”继承HmsMessageService类并实现其中的方法,此处以DemoHmsMessageService类为例(类名由您自定义)。

“Android 11”更改了应用查询用户在设备上已安装的其他应用以及与之交互的方式。您应用的“targetSdkVersion”是30或者更高版本时,需要在“AndroidManifest.xml”中“manifest”内添加标签,使应用可以访问HMS Core(APK)。

<manifest ...>
    ...
    <application ...>
        <service android:name=".DemoHmsMessageService" android:exported="false">
            <intent-filter>
                <action android:name="com.huawei.push.action.MESSAGING_EVENT"/>
            </intent-filter>
        </service>
    </application>
    ...
    <queries>
        <intent>
            <action android:name="com.huawei.hms.core.aidlservice" />
        </intent>
    </queries>
    ...
</manifest>

4.配置混淆脚本
在应用级根目录下打开混淆配置文件“proguard-rules.pro”,加入排除HMS Core SDK的混淆配置脚本。

-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.huawei.hianalytics.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}

如果您使用了AndResGuard,需要在应用级的“build.gradle”文件中加入AndResGuard允许清单。

"R.string.hms*",
"R.string.connect_server_fail_prompt_toast",
"R.string.getting_message_fail_prompt_toast",
"R.string.no_available_network_prompt_toast",
"R.string.third_app_*",
"R.string.upsdk_*",
"R.layout.hms*",
"R.layout.upsdk_*",
"R.drawable.upsdk*",
"R.color.upsdk*",
"R.dimen.upsdk*",
"R.style.upsdk*", 
"R.string.agc*"

以上就是华为推送配置的全部信息,小米推送请参考Android集成小米推送教程

以上是关于Android集成华为推送教程的主要内容,如果未能解决你的问题,请参考以下文章

Android集成华为推送教程

Android集成华为推送教程

Android 华为推送服务集成

Android 华为推送服务集成(详细教学)

Android集成华为推送的问题总结

Android集成华为推送的问题总结