【FAQ】获取Push Token失败,如何进行排查?

一、 获取Push Token的方式

获取Push Token有两种方式:一种是调用getToken方法向Push服务端请求Token,当getToken方法返回为空时,Token可通过onNewToken方法返回,因此需要实现onNewToken方法;另一种是自动初始化,Token通过onNewToken方法返回。这两种方法的详细说明可看获取和注销Token文档:获取和注销Token。

二、 获取Push Token失败的现象

获取Push Token失败大致有两种现象:一种是获取Token的接口执行失败,错误会在日志中显示,有相应的错误码打印;另一种是获取Token的接口执行成功,没有报错,但是getToken方法返回为空,onNewToken方法也没有被调用。

三、 分现象进行排查

如果有报错,需要找到报错描述和错误码,参考常见错误码说明文档:常见错误码,根据报错描述和常见错误码说明文档中对应错误码的解决方法进行排查,大部分问题都可以得到解决。

比较典型的案例:开发者按照对应错误码的解决方法进行排查,无法解决问题,后来和开发者要了手机端抓取的日志,从日志中看到申请Token使用的appid不是应用对应的appid。所以一定要保证使用的agconnect-services.json文件是对应应用最新的文件,可以从AGC控制台上新下载一份;并且保证应用中所有使用到的appid都是对的,可以用全局搜索进行查找。有些开发者的应用可能是多个人共同开发的,变量命名可能不一致,无法搜索所有用到的appid,这种情况下可以通过手机端日志确认使用的appid是否正确。

日志抓取方法:zaaxz

【FAQ】获取Push Token失败,如何进行排查?

adb shell setprop log.tag.hwpush VERBOSE
adb logcat -v threadtime 1> D:\hwpush.log

2、尝试复现遇到的问题场景。

3、按快捷键“Ctrl+C”完成日志抓取。

查找关键日志:

搜索api_name:push.gettoken关键字,找到如上图所示的这行日志,error_code是申请Token失败时返回的错误码,app_id是用来申请Token的appid,pkg_name是应用的包名,检查app_id值是否为对应应用的appid,如果不是,可以使用这个app_id在应用的工程中进行全局搜索,排查在哪个地方使用了这个值,并进行修改。

如果获取token的接口执行成功,没有报错,onNewToken方法也没有被调用,请检查代码中继承了HmsMessageService的自定义类,看下自定义的类中除了重写了配置Manifest文件文档中说明的用于接收透传消息、获取Token的方法外,是否已经重写其他方法,如果有请去掉,其他方法不需要重写,而且重写可能会导致类中的方法不会被调用。如果继承HmsMessageService的类实现没有问题,请排查工程中定义了几个继承HmsMessageService的类,如果定义了多个继承HmsMessageService的类,也会导致实现的方法不会被调用,继承HmsMessageService的类只能有一个。

典型案例:

开发者使用三方推送,三方推送的SDK中已经定义了一个继承HmsMessageService的类,这种情况就不需要再定义继承HmsMessageService的类,需要开发者去咨询三方推送的技术支持要怎么使用他们定义的这个类。可以通过反编译查看Android声明文件,确定三方推送的SDK中是否定义了继承HmsMessageService的类。可以通过查看手机端日志确定有几个继承HmsMessageService的类,日志抓取方法同上,下面说一下怎么看关键日志。

查找关键日志:

【FAQ】获取Push Token失败,如何进行排查?

搜索HmsMessageService num is关键字,找到如上图所示的日志,结合日志上下文中的packageName确定对应应用的日志,HmsMessageService num is后面的数值就是继承HmsMessageService的类的数量,如果不为1,请排查工程代码,并删除多余的类。

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

原文链接:https://www.cnblogs.com/hmscore/p/17146899.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:【FAQ】获取Push Token失败,如何进行排查? - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • Android报”SecurityException”如何解决?

    首先我们需要知道在Android中,每个应用程序都会运行在自己的Sandbox中,这是为了保证应用程序之间的安全性和隔离性。这意味着当我们试图从应用程序中访问另一个应用程序或系统的一些敏感资源时,我们可能会遇到”SecurityException”异常。 该异常表示当前的应用程序没有足够的权限来执行某个操作。通常可以通过以下两种方式来解决该问题: 申请相关权…

    Android 2023年4月3日
    00
  • Android页面渲染效率优化实践

      1.车系页布局渲染现状  车系页是重要的车系信息页面,更新迭代多年,页面布局不断变化,xml布局文件越写越复杂。 获取车系页布局文件耗时:         startTime = System.currentTimeMillis();         setContentView(R.layout.car_series_revision_activity…

    Android 2023年4月17日
    00
  • 小程序容器助力组装移动银行超级APP

    移动银行APP作为一种重要的商业渠道,是数字获客客户、生态建设和品牌传播的关键。近年来,作为银行机构客户经营的重要平台,移动银行APP利用技术不断迭代升级和创新手机银行APP服务功能。 根据艾瑞关于2022年中国手机银行 App 的研究分析显示,自2016年起,银行业平均业务离柜率呈上升趋势,2021年已有超90%的银行业务实现离柜办理,截止到2022年6月…

    Android 2023年4月17日
    00
  • 安卓常用shell命令大全

    前言 这篇笔记用来收集在日常开发中所用到的安卓adb shell命令,参照了一些大佬的再加上我自己平时用到的整理在了一块儿,感谢无私共享的大佬们。 将会持续更新,欢迎收藏~ 一、基本用法 命令语法 adb 命令的基本语法如下: adb [-d|-e|-s <serialNumber>] <command> 如果只有一个设备/模拟器连接…

    Android 2023年4月18日
    00
  • 直播回顾 | 点击率提升400%,Ta是怎么做到的?

    Discovery第18期直播已于3月30日圆满结束,本期直播邀请天眼查做客直播间,从天眼查与华为Push用户增长服务合作历程切入,聚焦用户增长,分享提升应用活跃度和渠道ROI的经验与见解。一起来回顾本期精彩内容吧! 【精彩对话】 Q1: 天眼查为什么选择华为Push用户增长服务实现拉新、促活和转化? 刘树维:天眼查作为国内领先的商业查询平台,我们发现用户对…

    Android 2023年4月17日
    00
  • 钥匙环服务,打造无缝的跨设备登录体验

    近些年来,随着手机技术迭代更新越来越快,用户更换手机的周期也在缩短,在这样的背景下,开发者不得不面临以下问题: 同一开发者旗下常常有多个安卓应用和多形态应用(快应用和Web应用),用户更换一个新的设备(手机或平板)后,在新设备上登录各应用时每次都需要重复输入帐号和密码,导致用户在登录阶段流失率增加,同时开发者还需要承担额外的短信成本(如用户使用短信登录)。 …

    Android 2023年4月17日
    00
  • 游戏内嵌社区服务开放,助力开发者提升玩家互动与留存

    华为 HMS Core 游戏内嵌社区服务提供快速访问华为游戏中心论坛能力,支持玩家直接在游戏内浏览帖子和交流互动,助力开发者扩展内容生产和触达的场景。 一、为什么要游戏内嵌社区? 二、游戏内嵌社区的典型使用场景 1、游戏内打开论坛 您可以在游戏内绘制论坛入口,为玩家提供沉浸式发帖、浏览、点赞、回帖、参与投票等各类互动体验。 说明:您可根据游戏风格,自定义论坛…

    Android 2023年4月18日
    00
  • HMS Core 6.10.0版本发布公告

    分析服务 ◆ 事件分析下新增商品订阅分析报告,帮助开发者了解应用内用户付费订阅概况,评估订阅付费价值; ◆ 营销分析、用户质量、转化分析以及过滤器中,新增广告系列/广告任务通过ID进行搜索的功能,通过更便捷高效的数据分析体验,帮助开发者合理评估广告投放的后端转化效果。 查看详情>> 运动健康服务 ◆ 血糖数据类型在原有指尖血糖数据开放的基础上,新…

    Android 2023年5月6日
    00
合作推广
合作推广
分享本页
返回顶部