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

目前(2020 年 8 月)国内版 MIUI 的 FCM 推送是否能像原生/类原生一样正常工作?

  •  
  •   KirbySD · 2020-08-14 16:00:14 +08:00 · 21871 次点击
    这是一个创建于 1549 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前在搭载国内版 MIUI 11 的小米 8 上测试了 FCM (刷 gapps 和直装 GMS 两种方法均测试过),在直连 /改 hosts/系统级代理 /路由器级代理下无一例外存在下列问题:

    • 无法对 Google Play Services 设置电池优化
    • FCM 与服务器的连接断开后,除非切换网络环境(打开关闭 VPN 、WiFi /蜂窝数据切换等),否则几乎不会自动重连
    • 息屏过久后即使仍然与 FCM 服务器有连接,推送也会延迟数分钟甚至到重新打开屏幕(测试推送的 priority 已设置为 high )

    这两个问题导致 FCM 在国内版 MIUI 上的推送及时率十分难看,请教各位目前是否有解决方案?还是只能刷国际版 / LineageOS ?

    17 条回复    2021-06-16 14:29:03 +08:00
    elechi
        1
    elechi  
       2020-08-14 17:10:10 +08:00
    同问,我也试了搞不定。
    shikkoku
        2
    shikkoku  
       2020-08-14 17:22:27 +08:00
    同问,换 OPPO 或 VIVO 新款手机是否可以破?
    Awes0me
        3
    Awes0me  
       2020-08-14 17:36:21 +08:00 via Android
    miui 12 推送没问题,但是要打开 app 的自启权限
    bghtyu
        4
    bghtyu  
       2020-08-14 22:54:48 +08:00
    刷 eu 版没问题,通知很及时
    JensenQian
        5
    JensenQian  
       2020-08-15 08:16:24 +08:00   ❤️ 1
    https://www.coolapk.com/feed/17304177?shareKey=ZWU3MmYwODM5OGU1NWYzNzI4N2M~&shareUid=2065884&shareFrom=com.coolapk.market_10.5
    按照酷安的这个试下,我按照这个试了下还是不行,息屏时候会断,国内版 miui 对后台管理真的严格,后面我刷的波兰版,通知很及时,享受完整 gms 还是刷海外版,记得刷的时候把小米公交和钱包已经弄进去
    JensenQian
        6
    JensenQian  
       2020-08-15 08:18:47 +08:00
    @JensenQian 顺带记得把需要走 FCM 的 app 的自启开启
    sjdhome
        7
    sjdhome  
       2020-08-15 09:18:18 +08:00
    把 Google 服务框架(不是 Play 服务) 的省电策略设置为无限制就会自动把整套 Google 服务的电池优化设定为未优化了,FCM 也都正常了。但是每次重启都会重置。
    0A0
        8
    0A0  
       2020-08-15 10:14:41 +08:00 via Android
    fcm 延迟是一直有的,我在国外也是一样经常各种延迟。
    机身内置谷歌基础服务的,把 play 商店省电改为未配置就行了,其他是系统服务也改不了。卡刷的权限要全部开放。
    连接一直会连的,延迟也会有。
    想彻底解决就是改为国际版 /eu 等海外版。
    fydpfg
        9
    fydpfg  
       2020-08-15 18:26:31 +08:00   ❤️ 1
    我刚才进行了一系列对比实验,结论是,应用权限的“自启动”只要打开就会正常收到 FCM 推送。如果“自启动”关闭,只有应用在运行的时候才能收到 FCM 推送。
    能否收到推送跟“省电策略”和最近任务视图是否“加锁”完全无关,即使“完全禁止后台运行”,也可以正常收到推送。

    MIUI 版本:国内最新版本的开发版公测( MIUI 12 20.8.13 )
    Google 框架是系统内置的,即安装国外 app 时会提示需要启用 Google 框架然后点“确定”,不是自己通过安装器安装的。Google 框架相关的 app 授予了所有权限,包括自启动、不限制后台,除此之外没有进行任何其他设置。
    KirbySD
        10
    KirbySD  
    OP
       2020-08-16 12:11:25 +08:00
    @bghtyu
    @Awes0me
    @sjdhome
    @0A0
    @fydpfg
    感谢各位,不过各位好像没提到过 FCM Diagnostics 里面的连接记录问题……
    推送在 FCM 连接的情况下是能正常收到的,这点没有问题(即把自启动权限打开),但是主楼里面的 FCM 连接问题不知道各位是否有测试过(拨号盘输入 *#*#426*#*# 打开 FCM Diagnostics )
    我测试的时候 MIUI 国内版的症状类似这里: https://club.huawei.com/thread-22982534-1-1.html (居然爱国牌手机也有这症状)
    原生 /类原生的正常情况应是 Reconnect Manager 倒数为 0 时即开始尝试重连,但我测试时 MIUI 在断开后倒计时会变为负数,并不会自动重连。这点不知道各位是否有遇到过。
    sjdhome
        11
    sjdhome  
       2020-08-16 19:56:32 +08:00 via Android
    @KirbySD 断开重连网络可以让它强行重试的,但凡成功连上一次就不会有负数的情况了
    sjdhome
        12
    sjdhome  
       2020-08-16 20:03:42 +08:00 via Android
    @KirbySD 好像刚刚发的已经提到过了...超时不重连可以看一下 GCM 日志里是否有多次 Failed connection
    0A0
        13
    0A0  
       2020-08-21 11:07:45 +08:00   ❤️ 2
    告诉你一个终极解决办法吧。如果换到海外版,那就什么都不用做 gsm 服务是正常的。
    如果还想用国内版,

    1.首先要知道国内版是谷歌服务是内置 Googleservicecn 这个文件控制的,会导致诸如连接失败 /不稳定 /商店报错等一堆问题。搜一下把它干掉,magisk mod 就好。

    2.需要 fcm 推送的软件必须要打开自启动。是的,miui 的自启动规则是不打开自启动 fcm 推送也无法挂起的。可以设定为开启自启动但后台显示存活时间。

    3.把相关谷歌服务权限全部开启,省电模式的话部分机型是系统内置无需改省电等设置。参考上面的酷安回答。

    4.可选。搜索神隐模式的云控,规则改为国际或毛子。

    5.miui 的底层省电规则和后台控制是经常更新和变动的,可能这个版本锁屏还能保持,下个版本就莫名断连了,对普通用户来说无解,严重依赖谷歌服务的话国际版最好。

    最后,fcm 服务连接不稳定问题,这个是受很多原因影响,比如网络问题,qiang 问题,以及 miui 自身的后台控制机制等。因为国内版未对 gsm 做任何优化所以不会像 mipush 那样有优先级。即便你做了上面所有操作,甚至不在墙内,也有一定几率影响到推送。
    但在与工程师反复测试后,只要按照上述操作,基本上推送是都没问题的。国内只要保证你的 tz 就好。
    pipiss
        14
    pipiss  
       2020-10-28 16:22:36 +08:00
    @KirbySD 关闭 miui 优化就不会出现负数可以直接重连了。
    ThinMonkey
        15
    ThinMonkey  
       2021-05-26 12:26:11 +08:00
    @0A0 麻烦问下 Googleservicecn 在国内版 MIUI 什么位置,我在 MT 管理器里找不到
    0A0
        16
    0A0  
       2021-05-31 10:48:06 +08:00 via Android   ❤️ 1
    @ThinMonkey system/etc/permissions/services.cn.google.xml
    /system/product/etc/permissions/services.cn.google.xml
    ThinMonkey
        17
    ThinMonkey  
       2021-06-16 14:29:03 +08:00
    @pipiss 我在国内版经过测试关闭 MIUI 优化也不行,还是会负数,现在安卓 11 的 MIUI 国内版限制特别大
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2703 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:22 · PVG 16:22 · LAX 00:22 · JFK 03:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.