问题描述
如您的应用接入了厂商通道,但在应用运行日志中观察到如下类似日志:
[OtherPushClient] handleUpdateToken other push token is : other push type: huawei
表示您的应用注册该厂商通道失败。您可以通过获取厂商通道注册失败的返回码来进行问题定位和排查。
排查步骤
获取厂商通道注册返回码
移动推送 Android SDK 提供以下方式获取厂商通道注册返回码:
在应用运行日志中通过过滤关键字
OtherPush
,找到如下类似日志来定位厂商通道注册返回码:// 华为通道// 如果过滤关键字 `OtherPush` 找不到返回码,可以过滤关键字 `HMSSDK`,并注意查看 onResult 或 onConnect 后的返回码[OtherPushHuaWeiImpl] other push huawei onConnect code:907135702// 小米通道[OtherPush_XG_MI] register failed, errorCode: 22022, reason: Invalid package name: com.xxx.xxx// 魅族通道[OtherPush_XG_MZ] onRegisterStatus BasicPushStatus{code='110000', message='appId不合法'}// OPPO 通道[OtherPushOppoImpl] OppoPush Register failed, code=14, msg=INVALID_APP_KEY// vivo 通道[OtherPushVivoImpl] vivoPush Register or UnRegister fail, code = 10003
返回码问题排查
您可以前往各厂商推送的官方文档获取返回码具体含义并进行问题排查。部分常见错误码可参考下表:
厂商通道 | 返回码 | 含义 | 解决建议 | 厂商通道官方返回码地址 |
华为 | 1001 | 请确认手机中安装有应用 “华为移动服务” 或 “HMS-Core”,华为推送必须 | 前往华为应用商店下载安装应用 “HMS-Core” | |
| 6003 | 应用 APK 未打签名或与华为开放平台登记签名信息不一致,华为推送必须 | | |
| 907135000 | appId 不合法 | 检查华为推送配置文件 agconnect-services.json 文件内 appId 字段内容是否和应用包名匹配 检查配置文件位置是否在工程 app 模块的根目录下(和 app build.gradle 文件同级) | |
| 907135702 | 签名文件的 SHA256 值与在华为推送平台上配置的不一致 | 前往华为推送平台检查填写的签名文件 SHA256 值是否配置一致(华为支持添加多个) | |
| 907135003 | ApiClient对象无效。 | 请检查手机网络是否可以正常访问互联网,或重新进行网络连接 此问题多和华为手机系统应用华为移动服务 HMS-Core 版本不兼容有关,您可以尝试进入华为应用商店搜索 HMS-Core 或华为移动服务,检查是否最新版本并进行升级 | |
荣耀 | 8001000 | 设备不支持荣耀推送 | 请使用荣耀设备测试 请更新包含推送服务Magic UI的版本 | |
|
8001003
|
应用证书指纹获取失败
|
请配置好您的证书指纹
| |
小米 | 22006 | 应用程序 ID 不合法 | 前往小米推送平台检查应用的包名、appId、appKey 是否匹配 | |
| 22007 | 应用程序 Key 不合法 | 前往小米推送平台检查应用的包名、appId、appKey 是否匹配 | |
| 22022 | 应用程序 package name 不合法 | 前往小米推送平台检查应用的包名、appId、appKey 是否匹配 | |
魅族 | 110000 | appId 不合法 | ||
| 110001 | appKey 不合法 | 前往魅族推送平台检查应用的包名、appId、appKey 是否匹配 | |
OPPO | 14 | 无效的 AppKey 参数 | 请注意 setOppoPushAppId 填入的是 OPPO 的 AppKey,不是 AppId;setOppoPushAppKey 填入的是 OPPO 的 AppSecret,不是 AppKey | |
| 15 | 缺少 AppKey 参数 | 补充 AppKey 参数 | |
vivo | 10003 | App 包名与配置不匹配 | 前往 vivo 推送平台检查应用的包名、appId、appKey 是否匹配 | |
| 10004 | appkey 不匹配 | 前往 vivo 推送平台检查应用的包名、appId、appKey 是否匹配 | |
| 10005 | appid 传入错误 | 前往 vivo 推送平台检查应用的包名、appId、appKey 是否匹配 | |
其他排查
华为推送需要在华为推送平台开启推送服务
如您在华为设备上无法获取华为 Token,但获取到厂商推送注册返回码为0 ,请前往 华为推送平台,进入开发 > 推送服务页面,确认应用的推送开关是否开启;进入开发 > 项目设置 > API 管理页面,确认
Push Kit、App Messaging
开关是否开启。
推送服务页面显示如下:
API 管理页面显示如下:
小米推送需要在小米推送平台开启推送服务
如您未找到小米通道注册返回码,请前往 小米开放平台 > 推送运营平台,确认应用的消息推送服务是否启用。
OPPO 推送需要申请推送功能开通后才能进行正式推送
在 OPPO 开放平台 的推送服务界面可以看到已开启服务应用和未开启服务应用,在未开启服务中单击需要申请 Push 权限的应用,进入 Push 服务并单击申请开通。
vivo 推送需要申请推送功能开通后才能进行正式推送
进入 vivo 开放平台 > 推送运营平台,在消息推送 > 全部应用中,所创建应用将会列入在应用名称里,单击应用名称选择要申请的应用后单击提交申请。
说明
部分厂商推送开关开启生效有约5分钟延迟,若开启开关后仍遇到注册失败,可以稍等片刻再进行尝试。
华为移动服务版本过低
搜索日志关键字“HMSSDK”,如观察如下类似日志,即
connect versionCode
小于 connect minVersion
,表示系统应用“华为移动服务”或“HMS_Core”版本较低,请做升级后尝试重新注册。I/HMSSDK_HuaweiApiClientImpl: ====== HMSSDK version: 20601301 ======I/HMSSDK_HuaweiApiClientImpl: Enter connect, Connection Status: 1E/HMSSDK_Util: In getHmsVersion, Failed to read meta data for the HMS VERSION.I/HMSSDK_HuaweiApiClientImpl: connect minVersion:20600000I/HMSSDK_HuaweiMobileServicesUtil: connect versionCode:20301306D/HMSAgent: connect end:-1001
vivo 部分机型不支持推送服务
vivo 推送仅支持部分较新的机型和对应的系统及以上系统,详情请参见 vivo 推送常见问题汇总。