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

2018-01-24 13:39:13 +08:00
 keboge
第一段视频
<amp-youtube data-videoid="kwO6IexeKbE" layout="responsive" width="480" height="270"></amp-youtube>绿色守护开浅度睡眠,微信休眠后,可以看到 GCM 推送正常,绿色守护也确实后台唤醒了微信,但是不知道什么原因,后台运行的微信没有网络连接,这一点从悬浮窗的断网提示和进入微信一瞬间的断网提示就可以看出来,当微信前台运行之后就马上收到了消息

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

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

环境,红米 note3 高配版,miui8.5.2 稳定版,android 版本 6.0.1,绿色守护和微信国内版和国际版都试过,国内版均为酷安下载,国际版均为 play 市场下载,出现的情况如视频所示一样
7284 次点击
所在节点    问与答
10 条回复
zts1993
2018-01-24 17:06:18 +08:00
别折腾了,微信的 GCM 只是为了唤醒
没网络是不是电池优化了?
cst4you
2018-01-24 17:34:36 +08:00
把微信不绿色话, 电池优化关掉, 让他怎么搞就怎么搞吧, 微信本来就不怎么耗电的东西...多此一举做什么

QQ 才是牛逼的东西, 开着后台, 20 多个群, 一天下来直接吃掉整机耗电 20%+ 但是你还没法不用
GooMS
2018-01-24 17:48:46 +08:00
微信 Gcm 可以无视
iVeego
2018-01-24 18:37:26 +08:00
微信的 gcm 是假的,gcm 唤起 push, push 拉取消息。叶子为微信进行了特殊优化使得 gcm 可用了。断网是因为 doze,添加电池白名单试试。
honeycomb
2018-01-24 18:42:39 +08:00
微信没有用高优先级 fcm 信息,因此默认的正常模式(将微信 force stop )时,不会拉起微信。这个时候微信的所有进程都被杀掉了,自然没有机会运行展示 toast 的逻辑。

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

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

Android 7 是 2016 年秋天正式发布的系统,至今已经快有一年半,如果算上首个公开预览版本,那就是已经面世 20 个月了,腾讯看上去没有在这方面做任何适配。
ae
2018-02-23 09:31:14 +08:00
微信的半残 fcm 并不能直接使用,
想用的话需要装 xposed,绿守里打开 xp 模式 gcm 功能,
这个就算把微信加入电池优化白名单,并且有你说的微信断网情况,但仍能完美收到微信 fcm 推送
(根据 gcm 心跳不同时间会有些许延迟)
trys1
2018-02-27 11:46:22 +08:00
跟楼主一毛一样的问题,请问楼主现在解决了吗?
trys1
2018-02-27 16:02:40 +08:00
同问,有没有什么方法,既可以休眠微信,又可以及时收到消息?

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

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

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

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

© 2021 V2EX