使微信通过 FCM 接收消息

2020-10-16 21:38:32 +08:00
 skrad
先决条件:
微信必须 fq 。
微信必须具有 FCM 功能。下载 Play 版,国行版本未测试,不确定。

fq 打开微信,以确保 FCM 功能激活。大陆 IP 打开微信,FCM 功能不启用。
连接 FCM 服务器。FCM 服务器可直连,但不稳定,由于微信必须 fq,FCM 服务器也 fq 连接。

绿色守护休眠微信,使其不在后台,只通过 FCM 接收消息。并设置允许 FCM 通知唤醒 app 。否则即使成功连接 FCM 服务器,且微信 FCM 功能激活,由于微信休眠,也无法被 FCM 通知拉起,导致无法接收新消息。

注:
微信 FCM 功能并不接收消息内容,只作为新消息提醒,程序收到 FCM 通知后,运行消息接收功能,接收新消息并弹出新消息提醒。

综上,fq 微信 + fq FCM 服务器 + 微信休眠 + 绿色守护允许 FCM 唤醒程序

以上条件下,及在保持网络长连接下( WiFi 环境),微信可以通过 FCM 接收新消息提醒。每次休眠后,会被新消息唤醒。

但是,如果中途网络中断(使用数据流量经常出现)且网络中断时发送新消息,即使再次 fq 连接 FCM 服务器,且 FCM diagnostics 中出现微信新消息推送记录,微信程序也无法被唤醒,无法接收新消息并弹出消息提醒。

为解决此问题,安装 X-APM,打开 GCM Generation Collection 。可保证在网络恢复连接后,由 X-APM 弹出微信新消息提醒。

如果不允许 FCM 通知唤醒程序,且不使用 X-APM,则微信被绿色守护休眠后,即使微信 FCM 模块收到通知,也无法接收消息并弹出新消息提醒。

如果不允许 FCM 通知唤醒程序,且使用 X-APM,则可达成类 IOS 效果,手机端有新消息提醒(来自 X-APM ),手动打开微信后程序再联网接收新消息。

如果允许 FCM 唤醒程序,不使用 X-APM,则收到 FCM 通知后,微信程序被唤醒(在保持网络长连接下),接收新消息并弹出通知。一旦网络连接中断,即使再恢复也无法弹出中断时间段新消息提醒。

如果允许 FCM 唤醒程序,且使用 X-APM,微信 FCM 收到通知后,X-APM 首先弹出微信新消息通知,微信程序被唤醒,接收新消息,弹出含具体消息内容的新消息通知。在网络中断并恢复后,由 X-APM 弹出中断时间段消息通知。

综上,为保证通过 FCM 收到所有微信新消息通知,具体设置如下:

微信 fq + FCM 服务器 fq + 绿色守护休眠微信 + 允许 FCM 通知唤醒程序 + FCM Generation Collection


注:在移动数据环境,网络条件更复杂,可能会出现 bug 。
23912 次点击
所在节点    Android
27 条回复
skrad
2020-10-30 21:23:59 +08:00
@swsh007 是的,否则不走 fcm
iamthy
2020-11-09 14:13:14 +08:00
三星用户表示国行系统阉割了 gcm,即使安装全套也没有用
deepcoder
2022-04-06 11:41:20 +08:00
大佬,我把微信全局 fq ,导致的结果 1 是朋友圈图片加载超级慢,2 是付 kuan 码银 hang 卡之类的二维码扫不出来,系统会提示有交易风险,晕了_(¦3 」∠)_。
看到这个帖子都快两年了,不知道还有没有办法让 V 信走 FCM 推送。真是后台毒瘤啊,太奇葩了
Moyuwuhen
2022-04-29 21:27:00 +08:00
@deepcoder 只要微信走代理且 fcm 可以正常使用就行了,但是强制微信代理的确会出现你说的情况,所以我还是向它屈服了。说说我的方法,先微信代理和 fcm 可以正常使用,然后黑阈微信,开启微信的 fcm 标识并且允许它通过 fcm 接收消息,就是这么简单,但是还是每次都会唤醒微信,并没有更省电
zeuszc
2022-06-05 20:48:48 +08:00
@deepcoder 在国外用 wifi 上,微信都是走的 fcm
deepcoder
2022-06-09 11:02:11 +08:00
@Moyuwuhen
@zeuszc
现在我使用 Thanox Pro (灭霸)的乖巧模式,将 vx 的只保留消息推送接收,其他进程冻结在后台。
这样一晚上七八个小时耗电才 50 毫安不到,也不耽误消息接收,非常好用。前提是要 root ,并且 APP 需要付费,有刚需可以使用 (* ̄︶ ̄)
kujourinka
2023-06-21 22:28:59 +08:00
原生系统,我目前的解决方案是在系统电池选项中微信选择 Optimized ,然后将微信黒阈掉但 allow sync ,同时在黒阈的设置中**关闭**优化微信。目前能稳定推送,延迟可能有十秒左右。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/715786

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX