HMS Core 推送服务(Push Kit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道。开发者通过集成推送服务,可以向客户端应用实时推送消息,构筑良好的用户关系,提升用户的感知度和活跃度。
推送服务由两个部分构成:
从云端到终端的消息推送通道:开发者可以通过推送服务,向客户端应用实时推送数据和消息。
终端消息展示:位于通知中心、终端桌面横幅、终端锁屏等多种类型和样式的消息展示。
具体可以参考以下官方文档:
在应用接入推送服务的过程中,开发者还向我们反映了一些隐私安全、报错、消息延迟等问题。这里小编进行了汇总分析,希望为开发者们提供参考、进一步提升服务质量。
应用使用华为推送服务,库为“ com.huawei.hms:push:3.0.3.301 ”,上架华为应用市场后提示 :尊敬的开发者,您好!审核过程系统检测得出您的应用存在获取用户的软件安装列表敏感信息,因此需要在隐私政策内说明,如应用通过xx方式获取xx范围的软件安装列表信息,覆盖xx范围的用户并通过xx方式服务于xx功能。
具体可参考链接:
https://developer.huawei.com/consumer/cn/doc/distribution/app/FAQ-faq 第1.2的相关内容,最终以审核结果为准。
"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回调方法返回数据不会在通知栏展示。问题定位后,解决方法如下:
查看是否关闭了应用允许通知、渠道通知开关等拦截消息开关。
排查发消息与端侧token是否一致,尝试使用重新获取push token后下发消息。
可在AGC平台选中推送服务、自助分析查询消息下发状态,也可以查询token是否可用。
目前此问题在6.3.0.302版本已全部处理,请开发者参考更新文档:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-app-version-0000001074227861?ha_source=hms1

错误代码503是指流控限制。目前默认6000qps,建议每次发送的token数量不超过100,可以每次调用60,每秒调用100次。具体参照以下链接:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/faq-0000001050042183#section196822541234?ha_source=hms1
a. 开发-概览-右侧的齿轮小图标-API管理-打开Push服务。
b. 开发-增长服务-推送服务-点击开通,修改服务状态为已开通。
以上两种情况,如果是刚刚修改完,需要等待15分钟时间才能生效。
在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();
}
连接有错误:@Override
public 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。)
<meta-data
android:name=“com.huawei.hms.client.appid”
android:value=“102729671” />
欲了解更多HMS Core推送服务详情,请参阅:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/service-introduction-0000001050040060?ha_source=hms1
华为开发者联盟官网
获取开发指导文档
参与开发者讨论请到Reddit社区
下载demo和示例代码请到Github
解决集成问题请到Stack Overflow
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除
我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些
目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里编辑 3.解析依赖到项目中
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g