V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
keboge
V2EX  ›  问与答

关于绿色守护和微信的问题,到底是谁的锅?

  •  
  •   keboge · 2018-01-24 13:39:13 +08:00 · 7284 次点击
    这是一个创建于 2496 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第一段视频
    绿色守护开浅度睡眠,微信休眠后,可以看到 GCM 推送正常,绿色守护也确实后台唤醒了微信,但是不知道什么原因,后台运行的微信没有网络连接,这一点从悬浮窗的断网提示和进入微信一瞬间的断网提示就可以看出来,当微信前台运行之后就马上收到了消息

    第二段视频
    正常休眠模式下,可以看到 GCM 推送成功,绿色守护同样唤醒了微信,但是同样不知道什么原因,后台运行的微信没有联网权限,只不过这次没有悬浮窗断网提示,但是仍然可以在进入微信的一瞬间看到断网提示,微信前台运行之后马上收到了消息

    那么问题来了,为什么后台的微信会没有网络连接呢?如何才能解决这个问题呢?

    环境,红米 note3 高配版,miui8.5.2 稳定版,android 版本 6.0.1,绿色守护和微信国内版和国际版都试过,国内版均为酷安下载,国际版均为 play 市场下载,出现的情况如视频所示一样
    10 条回复    2018-02-27 16:02:40 +08:00
    zts1993
        1
    zts1993  
       2018-01-24 17:06:18 +08:00
    别折腾了,微信的 GCM 只是为了唤醒
    没网络是不是电池优化了?
    GooMS
        3
    GooMS  
       2018-01-24 17:48:46 +08:00 via Android
    微信 Gcm 可以无视
    iVeego
        4
    iVeego  
       2018-01-24 18:37:26 +08:00 via Android
    微信的 gcm 是假的,gcm 唤起 push, push 拉取消息。叶子为微信进行了特殊优化使得 gcm 可用了。断网是因为 doze,添加电池白名单试试。
    honeycomb
        5
    honeycomb  
       2018-01-24 18:42:39 +08:00 via Android
    微信没有用高优先级 fcm 信息,因此默认的正常模式(将微信 force stop )时,不会拉起微信。这个时候微信的所有进程都被杀掉了,自然没有机会运行展示 toast 的逻辑。

    浅睡只是把微信置入 app standby 而已,app standby 时应用自然不能联网,但还是可以做很多事的(类似于 light doze )。

    从 Android7 开始,系统的 light doze 机制使得所有应用在默认情况下,都没有后台网络(无需人为设定 app standby )。
    codingadog
        6
    codingadog  
       2018-01-24 18:49:36 +08:00
    看着和 iOS 上的微信动作很相似,都是先收到推送,然后进去才正式收消息
    honeycomb
        7
    honeycomb  
       2018-01-24 18:54:44 +08:00 via Android
    在 Android 7+,当然是要那种在编译器间开启了 doze flag 的,不使用此类自动休眠软件,微信也会在熄屏一段时间后再打开回来时,通知不能连网。

    Android 7 是 2016 年秋天正式发布的系统,至今已经快有一年半,如果算上首个公开预览版本,那就是已经面世 20 个月了,腾讯看上去没有在这方面做任何适配。
    ae
        8
    ae  
       2018-02-23 09:31:14 +08:00
    微信的半残 fcm 并不能直接使用,
    想用的话需要装 xposed,绿守里打开 xp 模式 gcm 功能,
    这个就算把微信加入电池优化白名单,并且有你说的微信断网情况,但仍能完美收到微信 fcm 推送
    (根据 gcm 心跳不同时间会有些许延迟)
    trys1
        9
    trys1  
       2018-02-27 11:46:22 +08:00
    跟楼主一毛一样的问题,请问楼主现在解决了吗?
    trys1
        10
    trys1  
       2018-02-27 16:02:40 +08:00
    同问,有没有什么方法,既可以休眠微信,又可以及时收到消息?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3047 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:10 · PVG 08:10 · LAX 16:10 · JFK 19:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.