请问一下 国内的安卓手机在国内不用梯子的情况下能接收来自 fcm 的推送吗?
我看了一些相关的帖子 https://www.v2ex.com/t/712064 ,https://www.v2ex.com/t/732197 ,https://v2ex.com/t/543274 从这些帖子看来似乎 mtalk.google.com 并没有被墙。
但是 app 要接收推送除了 mtalk 以外不是需要先 subscribe 获取 fcm 令牌吗?可是 fcm subscribe 的 url 好像被墙了( https://fcm.googleapis.com/fcm/connect/subscribe )
所以想请问到底在国内能不用梯子接收 fcm 推送吗?如果可以的话,在 fcm 那个链接被墙的情况下大家都是怎么获取令牌的呢?
谢谢!
1
om2mo 2022-08-30 06:24:58 +08:00 via iPhone 4
1 ,说了很多遍,fcm 从来都没有被封,说被封的人麻烦专业点,似是而非的东西就不要妄下结论,你的一句话就会对人产生影响,自己都弄不清楚还教别人做事,做技术最讨厌这种人。
2 ,用代理反而无法收到推送,因为代理不是一直连接,超时会断开,fcm 要保持心跳连接。 3 ,因为 fcm 服务的域名和 IP 是国外归属,很容易被代理,所以要手动加入白名单。 4 ,最后就是国内 App 几乎不使用 fcm 。 |
2
admin601 2022-08-30 06:51:19 +08:00 via Android 3
能用,去拨号界面输入 " *#*#426#*#* " ,就能看到 fcm 连接情况。海外 app 在没代理的情况下仍可以收到推送,但是国产 app 几乎不会使用 fcm 推送。
|
3
0A0 2022-08-30 07:35:21 +08:00 via Android
国产定制 Android 的话可能部分会阉割 fcm ,而且需要给 app 开启自启权限。否则即便 fcm 正常也无法推送。
|
4
xctcc 2022-08-30 08:19:36 +08:00
我之前 tg 有一段时间可以正常推送,后来又不行了
|
5
docx 2022-08-30 09:11:46 +08:00 via iPhone
纯接收没有问题,是已经注册获取令牌之后的事了,也就是 mtalk
获取令牌需要暂时开代理,等注册上就可以关了 |
6
nothingistrue 2022-08-30 09:16:53 +08:00 1
不能。而且,不是不用梯子不能,而是用了梯子也不能,只要是国内的系统。
所有国行系统的 GMS 框架,都是为了解决部分 APP (游戏)没有 Google Play Service 就不能启动的问题的。像 Google Play 商店、FCM 推送这些,都是解决上面问题的副作用,并不是正常目标。部分厂商,为了避免测试和政策的麻烦,会在加了 GMS 框架后再加阉割手段把副作用屏蔽了。比如三星国行,直接系统 DNS 上屏蔽 FCM 的域名。 |
7
fydss 2022-08-30 09:19:13 +08:00
MIUI 国际版 正常推送不需要梯子 但是要给需要推送的 APP 开自启
|
8
delpo 2022-08-30 09:19:23 +08:00
如果你是指域名的话, m-talk.google.com 还有它的备用域名是没有被墙的, 但是它解析得到的 ip 有一部分是被墙的, 你可以上 github 上找一下或者自己试一下哪些 ip 可以直连, 然后改 hosts 把解析固定下来就行了, 比如说 142.250.111.188
|
9
dongpengfei1 2022-08-30 09:30:13 +08:00
可以,我的小米 9 刷了 PixelExperience 系统,facebook 、Twitter 、tiktok 、ins 等不挂梯子都能收的到推送。
|
10
ymy3232 2022-08-30 09:41:11 +08:00
三星手机 时不时能收到 tg 和 youtube 的推送
|
11
ScepterZ 2022-08-30 09:50:56 +08:00
之前查过一次,说是 fcm 推送收到后,会调用对应的程序做处理,但是国产 rom 对自启限制很严格,导致大部分时候收到了数据也弹不出来
|
12
dandycheung 2022-08-30 09:56:21 +08:00 via Android 1
这个,有时候并不是一个单纯的技术问题。而且,对于用户和开发者两种角色,考虑的点也不一样。楼主提到了一些技术细节,姑且按开发者的角度来思考一下:假设截止今天,fcm 在国内已经可以稳定工作半年了,你,要把自己产品里的推送功能全部切过去吗?
|
13
icaolei 2022-08-30 11:04:55 +08:00
MIUI 13 国内版,TG 得开自启才能收到推送,把自启关了就收不到了。我怀疑 TG 不是走的 FCM ,而是自己的后台推送。
|
15
feller 2022-08-30 11:57:55 +08:00
fcm 似乎要 app 在缓存里面
|
16
hingbong 2022-08-30 14:00:00 +08:00 via Android
@nothingistrue 我买了这个月发布的 moto ,是可以收到 fcm 的,需要允许 app 自起,fcm 接到消息后启动对应的 app ,app 再弹出推送
|
17
syhsyh9696 2022-08-30 14:21:34 +08:00
借楼问问,为啥 iqoo 就算在国外也收不到推送,准确的是推送服务器都连接不上。
|
18
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 跟其他厂商基本上是完全不管,能否连上全看心情,反正不再售后范围内。 |
19
diwenx OP 所以目前状况是通过 mtalk 的节点接收大部分没有问题,但是获取令牌的节点有些人讲是被墙的。那有些没开过代理的在拨号界面输入" *#*#426#*#* " 显示 fcm 连接是怎么回事呢?除了开代理以外有其他获取 fcm token 的方式吗?谢谢大家
|
20
laibin2 2022-08-31 11:47:04 +08:00
LG v50 测试了已连接 mtalk ,关闭🪜后。依然可以收到通知。
看了一下 mtalk ip 是 108.177.97.188 ,用 ping.pe 是没有封锁的 |
21
SekiBetu 2022-09-22 19:57:02 +08:00
能推送没用,后台杀掉了
|
22
k332159915 254 天前
@nothingistrue 请问下怎么验证三星在系统层面直接强制 DNS 解析到国内?
|