国内的安卓手机在国内不用梯子的情况下能接收来自 fcm 的推送吗

2022-08-30 02:53:50 +08:00
 diwenx

请问一下 国内的安卓手机在国内不用梯子的情况下能接收来自 fcm 的推送吗?

我看了一些相关的帖子 https://www.v2ex.com/t/712064https://www.v2ex.com/t/732197https://v2ex.com/t/543274 从这些帖子看来似乎 mtalk.google.com 并没有被墙。

但是 app 要接收推送除了 mtalk 以外不是需要先 subscribe 获取 fcm 令牌吗?可是 fcm subscribe 的 url 好像被墙了( https://fcm.googleapis.com/fcm/connect/subscribe

所以想请问到底在国内能不用梯子接收 fcm 推送吗?如果可以的话,在 fcm 那个链接被墙的情况下大家都是怎么获取令牌的呢?

谢谢!

10166 次点击
所在节点    Android
22 条回复
om2mo
2022-08-30 06:24:58 +08:00
1 ,说了很多遍,fcm 从来都没有被封,说被封的人麻烦专业点,似是而非的东西就不要妄下结论,你的一句话就会对人产生影响,自己都弄不清楚还教别人做事,做技术最讨厌这种人。

2 ,用代理反而无法收到推送,因为代理不是一直连接,超时会断开,fcm 要保持心跳连接。

3 ,因为 fcm 服务的域名和 IP 是国外归属,很容易被代理,所以要手动加入白名单。

4 ,最后就是国内 App 几乎不使用 fcm 。
admin601
2022-08-30 06:51:19 +08:00
能用,去拨号界面输入 " *#*#426#*#* " ,就能看到 fcm 连接情况。海外 app 在没代理的情况下仍可以收到推送,但是国产 app 几乎不会使用 fcm 推送。
0A0
2022-08-30 07:35:21 +08:00
国产定制 Android 的话可能部分会阉割 fcm ,而且需要给 app 开启自启权限。否则即便 fcm 正常也无法推送。
xctcc
2022-08-30 08:19:36 +08:00
我之前 tg 有一段时间可以正常推送,后来又不行了
docx
2022-08-30 09:11:46 +08:00
纯接收没有问题,是已经注册获取令牌之后的事了,也就是 mtalk

获取令牌需要暂时开代理,等注册上就可以关了
nothingistrue
2022-08-30 09:16:53 +08:00
不能。而且,不是不用梯子不能,而是用了梯子也不能,只要是国内的系统。

所有国行系统的 GMS 框架,都是为了解决部分 APP (游戏)没有 Google Play Service 就不能启动的问题的。像 Google Play 商店、FCM 推送这些,都是解决上面问题的副作用,并不是正常目标。部分厂商,为了避免测试和政策的麻烦,会在加了 GMS 框架后再加阉割手段把副作用屏蔽了。比如三星国行,直接系统 DNS 上屏蔽 FCM 的域名。
fydss
2022-08-30 09:19:13 +08:00
MIUI 国际版 正常推送不需要梯子 但是要给需要推送的 APP 开自启
delpo
2022-08-30 09:19:23 +08:00
如果你是指域名的话, m-talk.google.com 还有它的备用域名是没有被墙的, 但是它解析得到的 ip 有一部分是被墙的, 你可以上 github 上找一下或者自己试一下哪些 ip 可以直连, 然后改 hosts 把解析固定下来就行了, 比如说 142.250.111.188
dongpengfei1
2022-08-30 09:30:13 +08:00
可以,我的小米 9 刷了 PixelExperience 系统,facebook 、Twitter 、tiktok 、ins 等不挂梯子都能收的到推送。
ymy3232
2022-08-30 09:41:11 +08:00
三星手机 时不时能收到 tg 和 youtube 的推送
ScepterZ
2022-08-30 09:50:56 +08:00
之前查过一次,说是 fcm 推送收到后,会调用对应的程序做处理,但是国产 rom 对自启限制很严格,导致大部分时候收到了数据也弹不出来
dandycheung
2022-08-30 09:56:21 +08:00
这个,有时候并不是一个单纯的技术问题。而且,对于用户和开发者两种角色,考虑的点也不一样。楼主提到了一些技术细节,姑且按开发者的角度来思考一下:假设截止今天,fcm 在国内已经可以稳定工作半年了,你,要把自己产品里的推送功能全部切过去吗?
icaolei
2022-08-30 11:04:55 +08:00
MIUI 13 国内版,TG 得开自启才能收到推送,把自启关了就收不到了。我怀疑 TG 不是走的 FCM ,而是自己的后台推送。
admin601
2022-08-30 11:10:52 +08:00
@icaolei 是。tg 有自己的后台推送,设置中可以找到相关选项。
feller
2022-08-30 11:57:55 +08:00
fcm 似乎要 app 在缓存里面
hingbong
2022-08-30 14:00:00 +08:00
@nothingistrue 我买了这个月发布的 moto ,是可以收到 fcm 的,需要允许 app 自起,fcm 接到消息后启动对应的 app ,app 再弹出推送
syhsyh9696
2022-08-30 14:21:34 +08:00
借楼问问,为啥 iqoo 就算在国外也收不到推送,准确的是推送服务器都连接不上。
nothingistrue
2022-08-30 14:56:38 +08:00
@icaolei #13 FCM 推送是只负责推不负责订阅,订阅是由 APP 自己处理的,所以 APP (理论上应当是 APP 的一个服务)必须常驻或者自启才能够接受和后续处理消息。Android 本地通知中心只跟本地 APP 沟通,不跟推送服务器沟通,这点跟 IOS 是不一样的。
@hingbong #16 一次收到不代表永远收到。FCM 能否生效,取决于 mtalk 域名的 DNS 解析,能否连上解析后的 mtalk 服务器 IP ,能否连上 FCM 服务器并订阅,等等,这些环节任何一个出问题都会导致 FCM 失效。三星懒得测试就直接在系统 DNS 上强制 mtalk / FCM 全解析到国内,导致有梯子都连不上。MOTO 跟其他厂商基本上是完全不管,能否连上全看心情,反正不再售后范围内。
diwenx
2022-08-31 04:50:17 +08:00
所以目前状况是通过 mtalk 的节点接收大部分没有问题,但是获取令牌的节点有些人讲是被墙的。那有些没开过代理的在拨号界面输入" *#*#426#*#* " 显示 fcm 连接是怎么回事呢?除了开代理以外有其他获取 fcm token 的方式吗?谢谢大家
laibin2
2022-08-31 11:47:04 +08:00
LG v50 测试了已连接 mtalk ,关闭🪜后。依然可以收到通知。
看了一下 mtalk ip 是 108.177.97.188 ,用 ping.pe 是没有封锁的

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

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

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

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

© 2021 V2EX