Android 华为推送服务集成

如果对这个效果还满意,可以往下看了。
===============================================================
在进行Android开发时,我通常会使用自己的智能手机作为测试设备。这样更加便捷的同时也具备一定的灵活性,并且无需依赖虚拟机或模拟器环境。因此,在撰写本文内容时,默认情况下都是基于真实设备运行情况的说明。由于当时使用的是一款荣耀系列手机,在完成这款设备的功能对接后,并没有立即停止探索其他可能性。因此,在完成本文后...
好了,我的废话够多了,下面正式来看看。
首先进入华为开放平台

位于右上角处的功能区,请注意该区域包含登录与注册功能。为了使您能够顺利成为华为开发者,请确保您已完成实名认证流程。
登录之后,找到推送服务。

然后配置AppGallery Connect

勾选上,点击我同意。

点击我的项目

勾选上,点击继续。

点击添加项目。

输入项目名称,然后点击确认。
随后可能会出现一个重名提示;但无需担心你的项目已经建立好了
如果你实在觉得不得劲,那就改一下。

如上图,我加上了我名字的首拼音缩写。
添加添加应用按钮。

填写相关资料。

点击确认。

平台应用已成功搭建完毕。通过查看下图,请先下载该配置文件至电脑本地存储,并纳入项目设置中以便实现最佳的集成效果。随后即可启动AS项目的搭建工作。
创建AS应用也是有要求的。要求如下:

目前我的AS系统已安装至3.5.2版本号。如果您目前使用的AS系统还低于3.x(即小于等于2.x)版本号的话,请您尽快进行升级操作以确保正常运行。您可以参考我所撰写的关于AS安装配置的文章中详细的操作步骤。

点击Finish完成项目创建。
然后点击这个下拉按钮,切换到Project模式。

现在的目录是这样的。

然后将那个配置文件复制进来。

注意看复制的位置,是放在app文件夹中的,与src文件夹是同级别的。
然后你可以看看这个配置文件

这里面的数据和你刚才生成平台应用产生的值是一致的 这代表着该平台的应用与项目的整合

这里都有相互对应的情况。因此,在自建应用程序时,请您前往获取相应的配置文件。建议您按照步骤一步步操作。源代码中可能存在一些难以处理的问题。这可能会导致一些意想不到的问题。请预留充足的时间,并按照流程逐步进行对接。
打开项目级build.gradle,添加如下代码:
//新增
maven {url ‘https://developer.huawei.com/repo/’}
// 增加agcp插件配置。
classpath ‘com.huawei.agconnect:agcp:1.4.2.300’
添加位置如下图。

然后打开模块级build.gradle,添加如下代码:
//新增
implementation ‘com.huawei.hms:push:5.3.0.304’
添加位置如下图

然后单击上方右侧的"Sync Now"按钮以执行资源同步。系统将自动下载对应的SDK文件,请您无需理会。
在Android 11.0版本中,必须对AndroidManifest.xml进行配置。自Android 11版本起,默认更改了应用程序查询用户已安装的应用及其交互方式。当您的应用设置targetSdkVersion为30或更高版本时,在AndroidManifest.xml的manifest部分需添加特定标签以允许访问HMS Core(APK)功能。
添加位置如下图


选择APK,点击Next。

点击Create new… 创建新的。

下面进行jks文件的生成,这是你的应用秘钥。

选择生成秘钥的文件路径和设置秘钥名称。

点击OK。

秘钥密码可以和秘钥别名密码一样。

这个提示不用管,点击OK。

选择生成应用的类型和生成APK的路径。

单击"Finish"按钮。当应用商店(Your AS)的右下角显示此提示时,请注意这表明您的APK构建已完成,并且您可通过分发给他人下载该APK文件;此外,请确保所有下载的APK文件均可在设备上安装使用。

为了确认这个生成的jks文件无误, 下一步将提取该jks文件的SHA256哈希值
通过命令来获取。
keytool -list -v -keystore D:\APK\huaweiPush.jks
这里的D:\APK\huaweiPush.jks是我的jks文件存放路径,请以自己的为准。

输入密码,输入是不可见,输入完成之后回车即可。

这里SHA256指纹就有了。
回到平台应用处,进行填写。


这样就填写好了,这个SHA256指纹只用来检查应用的真实性。

然后切换到这个API管理,看看你的推送服务有没有打开。

在左侧导航栏选择“增长 > 推送服务”,点击“立即开通”,然后会弹出一个框。

点击确定。

选择中国(如果你在国外,也可以切换对应国家),点击确定。
将之前创建的huaweiPush.jks文件复制到你的app下

打开你的app的build.gradle,在里面添加
//配置签名
signingConfigs {
config {
storeFile file(‘huaweiPush.jks’)
keyAlias ‘key0’
keyPassword ‘203472’
storePassword ‘203472’
v1SigningEnabled true
v2SigningEnabled true
}
}
添加位置如下图

然后Sync Now。
刚才进行了一系列的配置,下面通过工具来验证一下配置的结果,
点击“File > Settings > Plugins” ,搜索“HMS”找到HMS Toolkit

点击Install,进行下载安装。

点击重启Android Studio。
然后你会发现你的AS工具栏上面会多出来一个HMS

先登录一下,这里也需要使用华为账号。

然后你再看看你的AS


点击同意
之后再点击Configuration Wizard


点击Add Kit。

选中Push Kit,点击Confirm。
可以看到这里出现了你在开放平台上的信息,向下滑动一下


这里的jks以及相关密码已经设置完毕,请您自行选择项目中app模块下的huaweiPush.jks文件,在该文件中,请填写秘钥密码、秘钥别名以及对应的秘钥别名密码。

单击此Generate按钮后会自动生成一个SHA56指针此处生成出来的指针是否与你之前通过jks工具生成的一致?如果出现不一致的情况则表明你的jks配置文件存在错误

这里可以做一下对比验证。
然后点击Next。

该系统将逐步审查用户的全部配置参数;一旦识别出某一项不符合规定的要求,则请参考界面上方的操作指引并采取相应措施:单击"Link"以手动重新配置该参数;操作完成后,请再次启动程序以执行完整的验证流程。

可以看到我的全部检查项均通过,点击“Go to coding assistant”按钮。

点击Push Kit

下面还是一个演示的效果图。

按照演示文稿中的指导步骤进行操作。执行完这些步骤后,在屏幕上会自动生成一个名为Activity的组件;同时,在AndroidManifest.xml中也进行了相应的修改;另外,请注意查看activity_push_get_token.xml以及PushMsgService这两个新增配置文件。
<manifest xmlns:android=“http://schemas.android.com/apk/res/android”
package=“com.llw.huaweipush”>
<application
android:allowBackup=“true”
android:icon=“@mipmap/ic_launcher”
android:label=“@string/app_name”
android:roundIcon=“@mipmap/ic_launcher_round”
android:supportsRtl=“true”
android:theme=“@style/AppTheme”>
<meta-data
android:name=“push_kit_auto_init_enabled”
android:value=“true” />
<service
android:name=“.PushMsgService”
android:exported=“false”>
如下代码是刚才生成的。
<meta-data
android:name=“push_kit_auto_init_enabled”
android:value=“true” />
<service
android:name=“.PushMsgService”
android:exported=“false”>
不过这个里面并没有刚才生成的PushGetTokenActivity的配置,我们把这个
将PushGetTokenActivity集成配置到AndroidManifest.xml中,并将其设置为启动Activity。如图所示。

然后通过USB运行安装应用到你的手机上。

单击"获取令牌"按钮时,在屏幕上会显示一个token信息,并且同时在控制台打印了Token

有了这个Token,就可以推送消息了。
在控制台复制这个Token,回到你的华为开放平台
