前因
今天下午闲着蛋疼没事干,就捣鼓了一下我的备用机的FCM推送,发现一些有意思的地方
- 手机型号:红米K30i
- 手机系统:MIUI 13.0.4 CN
- 已经在设置中打开了Google服务并且Google Service和Google Play都是最新版本
- 网络:中国电信
因为之前在这台手机上安装了TG,但是从来没收到过推送,于是我就开始排查为什么FCM不推送
开始排查
首先我先在拨号界面输入以下代码查看FCM的连接状态
*#*#426#*#*
输入后就看到明晃晃的“No Connect”几个大字,于是联合ChatGPT开始排查网络问题,经过一系列排查发现不是网络的问题,网络可以正常连接至FCM推送。然后ChatGPT又给我一堆方法,均无效。
后面还是我直接使用万能的Google搜索出来,原来Google Servie和Google Play的省电策略都要设置成“无限制”,然而MIUI很鸡贼的默认给Google Play的策略是智能限制,导致FCM的连接包都没发出去就被MIUI强行杀了。
OK,当我把Google Play的省电策略设置成“无限制”以后,开关飞行模式,可以看到FCM轻松连通,终于是“Connect”了
再次尝试推送
解决完FCM的连接以后我使用Outlook进行FCM的测试,因为排除网络连接问题,中国大陆不能直连Telegram,故采用Outlook进行测试
我满怀信心使用另一个邮箱给我的Outlook邮箱发邮件,然后等了一两分钟都没收到推送,于是我再次在拨号键盘输入这个代码,查看FCM的推送日志
*#*#426#*#*
发现日志里赫然写着“Failed to broadcast to stopped app”,询问了一下ChatGPT,它说这是因为即使FCM收到了消息,但是由于应用的状态为“stopped”,所以依旧不会推送。这种情况正常出现在应用刚被安装还没被打开和应用被“强行停止”后。但是有意思的是我的Outlook明显不符合第一种情况。至于第二种情况,我也没有在应用的设置里将它“强行停止”,我只是把后台划了。然后又是一顿测试果然得出了我预料中的答案MIUI默认会把划掉后台这个动作算作强行停止应用,这个行为也不能说不好,毕竟国内毒瘤应用还得这样才能压住,但是这样会让国外那些规规矩矩的应用收不到推送。
当然我也找到了解决方法,就是给你想要收FCM推送的那个应用“自启动”能力。
成功推送
做完上述操作后,我把Outlook的后台划了以后又给我自己发一封邮件,然后终于可以收到推送了,并且和我的IOS和WIndows(Outlook挂后台)同时收到推送,说明FCM的推送如果正常的话,也是几乎没有延迟的。
彻底死心
就在我高兴的时候,突然想起来我好像没有测试过息屏状态下的推送。于是我把手机息屏以后放了两三分钟,再给我自己发了一封邮件,果然又收不到推送了。去网上找了一圈,发现这篇文章讲得最详细,其中明确指到“锁屏状态下,FCM 的连接会被系统断开”,经过我的测试,确实如此,并且我的状况和他的一样。解决方法他也在文章中说明了,但是他说的方法都不适合我。
于是最终我的这台手机的FCM推送结果为:亮屏时可以无延迟收到消息推送,息屏后需要等待FCM在后台被唤醒才能收到消息(通常会延迟几分钟甚至十几分钟几十分钟),息屏后解锁手机,很快就能收到息屏时所有的推送(因为此时FCM又被拉起了)。
总结就是推了个寂寞,关于MIUI13的FCM研究就到此为止。
结语
目前可知国产小米手机使用国内应用可以使用Mi Push来接收消息,但是对于国外应用的推送,只能说能推但是不及时。其他国产Android没有尝试过,或许OV会好一点。
外版Android ROM对于国外应用的推送在国内肯定是没问题的,但是对于国内应用的推送支持几乎没有,并且压不住国产应用,不知道三星如何。
此时我想起了我的iPhone主力机,曾经就是因为Android老是不能及时收到别人的微信消息才换成的iPhone。APNs一直是iOS的骄傲,但是在今年五月一日前后,Apple通过某些手段使得在中国大陆的iPhone用户收不到一些应用(Telegram)的推送,或许在未来,Apple会将屏蔽推送的名单扩大到除中国大陆App Store以外的所有应用……
自从有了AI,好久没有纯手打这么多字了,还挺爽的
[Rule]
DOMAIN-SUFFIX,push.apple.com,PROXY
DOMAIN-SUFFIX,akadns.net,PROXY
DOMAIN-KEYWORD,apple.com.edgekey.net,PROXY
IP-CIDR,17.249.0.0/16,PROXY,no-resolve
IP-CIDR,17.252.0.0/16,PROXY,no-resolve
IP-CIDR,17.57.144.0/22,PROXY,no-resolve
IP-CIDR,17.188.128.0/18,PROXY,no-resolve
IP-CIDR,17.188.20.0/23,PROXY,no-resolve
IP-CIDR6,2620:149:a44::/48,PROXY,no-resolve
IP-CIDR6,2403:300:a42::/48,PROXY,no-resolve
IP-CIDR6,2403:300:a51::/48,PROXY,no-resolve
IP-CIDR6,2a01:b740:a42::/48,PROXY,no-resolve
苹果的弄个规则就好了
这种还是酷安上鼓捣的比较多吧 我以前天天鼓捣这个 后来换了外版手机和苹果,就再也没有遇到这种问题了
笑死,安卓推送真是狗屎一样的体验2026年了都,没想到10年前的问题现在没解决,当初就是因为这个换回iphone,估计某些安卓机型国内应用推送都没整明白吧,fcm这种还是太为难了,只能靠root根治了
@Zyhethan #3 我也几年没玩了,现在我都用MIUI官方版系统,换做以前我是绝对想不到这个手机竟然会用这个系统养老
@CIRE #2 是的,谢谢
空
iOS无压力
@mangege #4 可惜啊,国内貌似只有一加才能解锁了,iQOO和真我不知道行不行。已经没有玩机的土壤了
我是外版三星,outlook推送时有时无,这几天收到还算及时。