Android 收不到消息 / 排查不出请根据第 9 点说明提供信息

注:iOS 收不到排查戳这里


  1. 首先确认推送是否是成功的,消息是否是正确的

    • 调 API 推送或官网推送时,官网是否显示已成功, API 是否返回 HTTP code 200 和 msgid

    • 是否调用的是推送校验的 API ,消息实际没有推送出去

    • 若失败,官网会在页面上方提示,API 会返回错误码,根据错误码在列表中找到报错原因,在社区搜索该报错有更详细的排查步骤。

    • 你 API 推送消息所使用的 Appkey 是否与你客户端配置的 Appkey 不一致?请仔细检查。

    • 推送时 通知内容(Alert)是否为空 ,官网图示,为空则不展示

    • 你是否推送的是自定义消息而不是通知消息,自定义消息默认不展示

  2. 其次确认客户端是否已经集成成功

    • 确认 AppKey(在官网创建应用时生成的)已经正确的写入 Androidmanifest.xml

    • 是否可以获取到 RegistrationID 的值(能取到表示集成成功),若取不到 ID 请获取一下客户端日志信息,是否有报错内容,将日志信息提供给官方分析。

  3. 最后确认客户端是否可以正常接收 / 展示推送消息

    • 确认测试手机(或者模拟器)已成功连入网络(可以切换网络来判断是否该网络运营商有问题)

    • 请使用接口 isPushStopped 来检查 是否调用了stoppush,若是请调 resumepush 进行恢复

    • 检查手机的应用高级设置中是否设置了“允许推送时间”

    • 手机的应用中是否勾选了“显示通知”

    • 手机 - 设置 - 通知栏 -是否选择了横幅提醒

    • Android 8 系统,设置 targetSDKVersion>=26 时,华为手机可能不弹出通知,因为华为未兼容 Android 8.0 通知 Channel ,后续他们的修复情况暂时未知。可以尝试降低 targetSDKVersion

    • 小米手机,muui10 有通知过滤功能。在设置->通知和状态栏 关闭通知过滤。

  1. 「Android 是不是要求后台进程不能关,才能收到推送?」
    「Android 处于后台 / 黑屏状态下收不到推送」

    • 请自行确认收不到的时候长连接是不是已经断开,Android 是长连接的机制,必须 App 和极光服务器建立了连接才能收到推送;断网(或连的是内网,网络有限制,网络有波动,弱网环境)、关机、进程不在、主动调用了 stopPush 服务等,长连接都会断开,都没法收推送。

    • 长连接状态的判断

    • 极光的 SDK 会有自启动机制(心跳时间间隔是 4 分 50 秒),也支持进程间互相拉起功能,但是会受到系统本身的限制,即不保证一定能自启动和拉起成功。

    • 极光从 3.1.6 版本开始提供通道共享功能,建议更新。

  2. 「Android 中极光推送后台服务被杀死后不能自动重启」

    • Android 原生系统,没有 root,用 home 键上滑杀进程等其他系统自带的停止方式,都可以自启动,一般 10s 内恢复。但如果是强行停止就只能用户自己手动开启应用

    • 如果是 miui 等第三方系统,杀了进程默认无法自启动

    • 如果是 root 过的原生系统,杀了进程也是没有办法自启动的

  3. 更多情况的探讨:

  1. 「为什么微信或者 QQ 等应用看似可以保证不被杀死或者杀死后可以收到消息」

    • 如果将他们完全彻底的杀死,也是收不到的,这是肯定的

    • 只是:他们很难被杀死,即便杀死后也会以较快的速度重启:我们(用户)会下意识的在手机里开启对他们的保护;他们是不少手机系统的自带软件。

  2. 我们已接入「小米推送」、「华为推送」「魅族推送」「Google FCM」「OPPO 推送」「VIVO 推送」等市场上已有的 6 种系统推送,在 App 杀死时,你通过极光推送发的消息,在这 4 种手机上,会自动走系统推送下发消息,有需要的话可联系商务开通。

    • OPPO 推送仅支持企业用户,Vivo 需要在他们的应用商店上架且个别类别的应用不支持(这些在他们平台申请的时候均有说明)

    • 联系商务,QQ 公众号:800024881,电话:400-612-5955,邮箱:sales@jpush.cn

开通服务后方可获取到相关资料,相关技术支持请直接对接 VIP 支持,社区对此无法提供帮助

  • 其他 VIP 相关说明阅读本帖

  • 当然,你也可以自己单独的去集成每个系统推送的官方 SDK ,只是这样你需要分别手动进行推送。

  1. 根据上述内容排查未果,提供如下信息给官方协助查询

    • 请说明你根据排查步骤已确认有哪些信息是正确的,没有收到推送的依据是什么?务必提供如下两个信息,复制粘贴为文本,缺一不可:

    • Message ID(调用 API 请求成功后会返回 msgid ,官网 - 推送历史 - 操作 - i 详情里面也可以查看该信息,如果查不到历史请注意筛选条件,历史只保存 30 天)

  • 测试设备的 registrationID(不管是广播、别名、标签还是其他方式推送,均必须提供该信息,只有 registrationID 才能精准定位到你的设备) ,该信息只能在客户端调 API 获取,服务端无法取到,服务端若需存储请让客户端获取后上传 。
    Android 的 registrationID 获取方法点我

如果对你有帮助,点个赞 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ