HMS Core 推送服务(Push Kit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道。开发者通过集成推送服务,可以向客户端应用实时推送消息,构筑良好的用户关系,提升用户的感知度和活跃度。
推送服务由两个部分构成:
从云端到终端的消息推送通道:开发者可以通过推送服务,向客户端应用实时推送数据和消息。
终端消息展示:位于通知中心、终端桌面横幅、终端锁屏等多种类型和样式的消息展示。
具体可以参考以下官方文档:
96cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2Z5N6h3q4%4k6h3W2Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8$3&6K6N6h3#2W2M7W2)9J5c8X3y4F1i4K6u0r3k6r3!0U0i4K6u0r3k6r3g2$3k6h3I4G2M7r3#2W2L8Y4c8Q4x3V1k6t1e0g2y4o6L8%4u0W2i4K6u0V1c8%4g2A6k6r3g2K6i4K6u0r3M7$3g2J5N6X3W2U0k6g2)9J5k6r3W2F1N6s2u0G2k6s2g2U0N6r3W2G2L8W2)9J5k6o6l9H3x3o6l9H3x3o6p5H3y4e0l9H3y4o6l9H3y4U0m8Q4x3@1k6Z5j5g2)9#2k6Y4y4G2N6i4u0U0k6g2)9K6c8r3S2E0M7K6p5`.
在应用接入推送服务的过程中,开发者还向我们反映了一些隐私安全、报错、消息延迟等问题。这里小编进行了汇总分析,希望为开发者们提供参考、进一步提升服务质量。
应用使用华为推送服务,库为“ com.huawei.hms:push:3.0.3.301 ”,上架华为应用市场后提示 :尊敬的开发者,您好!审核过程系统检测得出您的应用存在获取用户的软件安装列表敏感信息,因此需要在隐私政策内说明,如应用通过xx方式获取xx范围的软件安装列表信息,覆盖xx范围的用户并通过xx方式服务于xx功能。
具体可参考链接:
ee5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2Z5N6h3q4%4k6h3W2Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8$3&6K6N6h3#2W2M7W2)9J5c8X3y4F1i4K6u0r3k6r3!0U0i4K6u0r3k6r3W2K6N6s2u0A6j5Y4g2@1K9h3!0F1i4K6u0r3j5i4m8H3i4K6u0r3c8V1q4c8i4K6u0V1k6X3q4I4 第1.2的相关内容,最终以审核结果为准。
1 | "stackTrace":["android.app.ApplicationPackageManager.getInstalledPackages(ApplicationPackageManager.java:886)","com.huawei.hms.aaid.c.a.a(AaidUtils.java:91)","com.huawei.hms.aaid.c.a.b(AaidUtils.java:141)","com.huawei.hms.aaid.HmsInstanceId.getId(HmsInstanceId.java:97)","com.huawei.hms.aaid.HmsInstanceId.getToken(HmsInstanceId.java:179)"," |
解决方式 : SDK 5.1.1.301 之前版本会通过getInstalledPackages方法读取应用列表,解决方式升级版本。
支持:EMUI版本8.0.0(及以上)推送服务应用版本8.0.0(及以上)
set_num字段
支持:EMUI版本9.1.0(及以上)推送服务应用版本10.1.0(及以上)
支持平台、系统版本:EMUI 4.1 及以上
桌面版本:6.3.29
支持设备:华为设备
描述:应用角标累加数字非应用角标实际显示数字,为大于0小于100的整数。例如,某应用当前有N条未读消息,若add_num设置为3,则每发一次消息,应用角标显示的数字累加3,为N+3。
描述:应用入口Activity类全路径。样例:com.example.hmstest.MainActivity
描述:角标设置数字,大于等于0小于100的整数。例如,set_num设置为10,则不论发了多少次消息,应用角标显示的数字都是10。如果set_num与add_num同时存在时,以set_num为准。
(说明:发送消息同时设置应用角标数字,“class“必填,“add_num”和”set_num”参数选填。若“add_num”和“set_num”都设置为空,则应用角标数字默认加1。)
有的开发者反应,用户延迟几分钟才能接收到应用的推送消息。针对该问题,由于华为推送消息量每日达百亿级,因此无法保证单条消息到达的实时性。官网有相关描述:充分保障通知栏消息的送达,十分钟在线到达率高达99%。感谢开发者们的理解与支持!
消息可分为两种:通知栏消息收到后由通知栏展示;透传消息不在通知栏展示由onMessageReceived回调方法返回数据。开发者需要注意,首先确认发消息的类型,不要误把透传消息当成通知栏消息发送造成通知栏没有收到消息的假象。其次,是否使用了foreground_show 字段参数为 false,由onMessageReceived回调方法返回数据不会在通知栏展示。问题定位后,解决方法如下:
1) 通知栏消息收不到
查看是否关闭了应用允许通知、渠道通知开关等拦截消息开关。
排查发消息与端侧token是否一致,尝试使用重新获取push token后下发消息。
可在AGC平台选中推送服务、自助分析查询消息下发状态,也可以查询token是否可用。
2) 透传消息收不到:确认应用是否存活。当应用是存活状态时,不管是前台或后台,下发后使用onMessageReceived回调方法返回数据,应用被杀都是收不到的。
目前此问题在6.3.0.302版本已全部处理,请开发者参考更新文档:
5d4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2Z5N6h3q4%4k6h3W2Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8$3&6K6N6h3#2W2M7W2)9J5c8X3y4F1i4K6u0r3k6r3!0U0i4K6u0r3k6r3g2$3k6h3I4G2M7r3#2W2L8Y4c8Q4x3V1k6t1e0g2y4o6L8%4u0W2i4K6u0V1c8%4g2A6k6r3g2K6i4K6u0r3j5h3&6V1M7X3!0A6k6q4)9J5k6r3q4H3M7q4)9J5k6s2k6W2M7Y4y4A6L8$3&6Q4x3X3b7H3x3o6l9H3x3o6l9I4x3o6M7@1x3U0t1%4z5o6j5I4i4K6y4r3K9r3q4Q4y4h3k6K6L8%4g2J5j5$3g2Q4x3@1c8Z5L8i4x3I4

错误代码503是指流控限制。目前默认6000qps,建议每次发送的token数量不超过100,可以每次调用60,每秒调用100次。具体参照以下链接:5f4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2Z5N6h3q4%4k6h3W2Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8$3&6K6N6h3#2W2M7W2)9J5c8X3y4F1i4K6u0r3k6r3!0U0i4K6u0r3k6r3g2$3k6h3I4G2M7r3#2W2L8Y4c8Q4x3V1k6t1e0g2y4o6L8%4u0W2i4K6u0V1c8%4g2A6k6r3g2K6i4K6u0r3k6X3q4I4i4K6u0V1x3o6l9H3x3o6l9H3x3e0l9#2x3o6l9@1x3U0p5^5x3#2)9J5x3%4y4W2j5%4c8A6L8$3^5I4z5e0j5^5x3U0t1#2y4o6p5J5x3K6c8Q4x3@1k6Z5j5g2)9#2k6Y4y4G2N6i4u0U0k6g2)9K6c8r3S2E0M7K6p5`.
a. 开发-概览-右侧的齿轮小图标-API管理-打开Push服务。
b. 开发-增长服务-推送服务-点击开通,修改服务状态为已开通。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 在Service调用推送初始化:public static void startPushService(Context c) { context = c; hwApi = new HuaweiApiClient.Builder(context) .addApi(HuaweiPush.PUSH_API) .addConnectionCallbacks(pushHw) .addOnConnectionFailedListener(pushHw).build(); hwApi.connect();}连接有错误:@Overridepublic void onConnectionFailed(ConnectionResult result) { PluginLog.i(TAG, "onConnectionFailed, ErrorCode: " + result.getErrorCode() );}输出:PushHw: onConnectionFailed, ErrorCode: 907135000 |
错误码907135000的排查步骤:
apply plugin: ‘com.huawei.agconnect’ (app模块build文件有没有加apply plugin。)
1 2 3 | <meta-dataandroid:name=“com.huawei.hms.client.appid”android:value=“102729671” /> |
欲了解更多HMS Core推送服务详情,请参阅:
85cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2Z5N6h3q4%4k6h3W2Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8$3&6K6N6h3#2W2M7W2)9J5c8X3y4F1i4K6u0r3k6r3!0U0i4K6u0r3k6r3g2$3k6h3I4G2M7r3#2W2L8Y4c8Q4x3V1k6t1e0g2y4o6L8%4u0W2i4K6u0V1c8%4g2A6k6r3g2K6i4K6u0r3M7$3g2J5N6X3W2U0k6g2)9J5k6r3W2F1N6s2u0G2k6s2g2U0N6r3W2G2L8W2)9J5k6o6l9H3x3o6l9H3x3o6p5H3y4e0l9H3y4o6l9H3y4U0m8Q4x3@1k6Z5j5g2)9#2k6Y4y4G2N6i4u0U0k6g2)9K6c8r3S2E0M7K6p5`.
华为开发者联盟官网
获取开发指导文档
参与开发者讨论请到Reddit社区
下载demo和示例代码请到Github
解决集成问题请到Stack Overflow
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~