V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
diwenx
V2EX  ›  Android

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

  •  
  •   diwenx · 2022-08-30 02:53:50 +08:00 · 10169 次点击
    这是一个创建于 818 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问一下 国内的安卓手机在国内不用梯子的情况下能接收来自 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 那个链接被墙的情况下大家都是怎么获取令牌的呢?

    谢谢!

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

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

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

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

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

    所有国行系统的 GMS 框架,都是为了解决部分 APP (游戏)没有 Google Play Service 就不能启动的问题的。像 Google Play 商店、FCM 推送这些,都是解决上面问题的副作用,并不是正常目标。部分厂商,为了避免测试和政策的麻烦,会在加了 GMS 框架后再加阉割手段把副作用屏蔽了。比如三星国行,直接系统 DNS 上屏蔽 FCM 的域名。
    fydss
        7
    fydss  
       2022-08-30 09:19:13 +08:00
    MIUI 国际版 正常推送不需要梯子 但是要给需要推送的 APP 开自启
    delpo
        8
    delpo  
       2022-08-30 09:19:23 +08:00
    如果你是指域名的话, m-talk.google.com 还有它的备用域名是没有被墙的, 但是它解析得到的 ip 有一部分是被墙的, 你可以上 github 上找一下或者自己试一下哪些 ip 可以直连, 然后改 hosts 把解析固定下来就行了, 比如说 142.250.111.188
    dongpengfei1
        9
    dongpengfei1  
       2022-08-30 09:30:13 +08:00
    可以,我的小米 9 刷了 PixelExperience 系统,facebook 、Twitter 、tiktok 、ins 等不挂梯子都能收的到推送。
    ymy3232
        10
    ymy3232  
       2022-08-30 09:41:11 +08:00
    三星手机 时不时能收到 tg 和 youtube 的推送
    ScepterZ
        11
    ScepterZ  
       2022-08-30 09:50:56 +08:00
    之前查过一次,说是 fcm 推送收到后,会调用对应的程序做处理,但是国产 rom 对自启限制很严格,导致大部分时候收到了数据也弹不出来
    dandycheung
        12
    dandycheung  
       2022-08-30 09:56:21 +08:00 via Android   ❤️ 1
    这个,有时候并不是一个单纯的技术问题。而且,对于用户和开发者两种角色,考虑的点也不一样。楼主提到了一些技术细节,姑且按开发者的角度来思考一下:假设截止今天,fcm 在国内已经可以稳定工作半年了,你,要把自己产品里的推送功能全部切过去吗?
    icaolei
        13
    icaolei  
       2022-08-30 11:04:55 +08:00
    MIUI 13 国内版,TG 得开自启才能收到推送,把自启关了就收不到了。我怀疑 TG 不是走的 FCM ,而是自己的后台推送。
    admin601
        14
    admin601  
       2022-08-30 11:10:52 +08:00 via Android
    @icaolei 是。tg 有自己的后台推送,设置中可以找到相关选项。
    feller
        15
    feller  
       2022-08-30 11:57:55 +08:00
    fcm 似乎要 app 在缓存里面
    hingbong
        16
    hingbong  
       2022-08-30 14:00:00 +08:00 via Android
    @nothingistrue 我买了这个月发布的 moto ,是可以收到 fcm 的,需要允许 app 自起,fcm 接到消息后启动对应的 app ,app 再弹出推送
    syhsyh9696
        17
    syhsyh9696  
       2022-08-30 14:21:34 +08:00
    借楼问问,为啥 iqoo 就算在国外也收不到推送,准确的是推送服务器都连接不上。
    nothingistrue
        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 跟其他厂商基本上是完全不管,能否连上全看心情,反正不再售后范围内。
    diwenx
        19
    diwenx  
    OP
       2022-08-31 04:50:17 +08:00
    所以目前状况是通过 mtalk 的节点接收大部分没有问题,但是获取令牌的节点有些人讲是被墙的。那有些没开过代理的在拨号界面输入" *#*#426#*#* " 显示 fcm 连接是怎么回事呢?除了开代理以外有其他获取 fcm token 的方式吗?谢谢大家
    laibin2
        20
    laibin2  
       2022-08-31 11:47:04 +08:00
    LG v50 测试了已连接 mtalk ,关闭🪜后。依然可以收到通知。
    看了一下 mtalk ip 是 108.177.97.188 ,用 ping.pe 是没有封锁的
    SekiBetu
        21
    SekiBetu  
       2022-09-22 19:57:02 +08:00
    能推送没用,后台杀掉了
    k332159915
        22
    k332159915  
       265 天前
    @nothingistrue 请问下怎么验证三星在系统层面直接强制 DNS 解析到国内?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1158 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:51 · PVG 02:51 · LAX 10:51 · JFK 13:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.