Heartbeat Fixer for FCM 是一款专为 Android 用户设计的轻量级工具,旨在修复 Firebase Cloud Messaging (FCM) 长连接因网络环境或系统激进省电策略而断开导致的推送通知延迟问题。作为经典工具 "Heartbeat Fixer for GCM" 的现代化重写版,它适配了 Android 12+ 的最新权限机制与 API 规范,帮助国行 ROM 用户及受困于 NAT/路由器限制的用户重获即时消息体验。
- GitHub:https://github.com/grimseraph/HeartbeatFixerForFCM
- 网盘:https://pan.quark.cn/s/0b31b7508c00
问题根源:为什么推送会延迟?
Android 设备与 Google 推送服务器之间维持着一条长期的 TCP 连接。为了保持连接活跃,系统会以固定间隔(移动网络下最长可达 28 分钟)发送心跳包。然而,在以下场景中,这条连接往往在下次心跳到来前就被“悄悄”丢弃:
- 运营商 NAT / 激进的路由器:长时间无数据传输的连接会被中间网络设备强制切断。
- 国行 ROM 的激进杀后台:许多国产定制系统在熄屏后会主动断开 FCM 长连接,仅保留每半小时一次的定时唤醒去拉取积压消息,导致用户错过重要通知长达十几分钟甚至更久。

工作原理
Heartbeat Fixer 通过向 Google Play 服务发送特定的内部广播(GTALK_HEARTBEAT / MCS_HEARTBEAT),强制其提前发送心跳包,从而刷新连接状态,防止被中间网络设备或系统休眠机制切断。
现代化改动 (v2.0):
- 显式广播发送:针对 Android 8.0+ 隐式广播失效的问题,将心跳广播显式发送给
com.google.android.gms和com.google.android.gsf。 - 精确闹钟支持:使用
setExactAndAllowWhileIdle()确保心跳按时触发,并妥善处理 Android 12+ 的精确闹钟权限。若未授权,则优雅降级为不精确闹钟。 - 纯净无广告:移除了所有过时库、广告、应用内购买及分析追踪代码,回归工具本质。
- 自动排程恢复:在设备重启或应用更新后自动重新安排心跳任务。
最佳实践配置
为了在 Doze 模式(打盹模式)下获得最稳定的保活效果,建议进行以下设置:
- 授予精确闹钟权限:
- Android 12+ 系统默认限制应用使用精确闹钟。请在 App 内点击快捷入口授予该权限。
- 注意:若未授予,心跳将被批处理(约每 9 分钟一次),可能导致保活频率不足。
- 电池优化设为“无限制”:
- 在 App 内点击电池优化设置,将 Heartbeat Fixer 排除出 Doze 模式限制,确保其在熄屏状态下仍能准时唤醒。
- 设定合理的心跳间隔:
- 推荐设置为 5 分钟。这足以应对大多数激进的路由器超时策略,同时不会显著增加电量消耗。
已知限制与注意事项
- 依赖 Google Play 服务 (GMS):本工具仅对安装了 GMS 的设备有效。未安装 GMS 的设备本身就没有 FCM 长连接,工具无法发挥作用。
- 避免强制停止:如果系统或第三方清理工具强制停止(Force Stop)本应用,闹钟链将中断且不会自动重启,直到下次开机或应用更新。请务必保持应用在后台运行。
- 效果需实测:由于心跳 Intent 是 Google 内部未公开的 Action,不同版本的 Google Play 服务响应情况可能不同。建议用户通过开关工具对比推送到达时延来验证效果。














0条评论