Android 的 doze mode 严重影响接收推送消息。

2020-03-10 14:47:01 +08:00
 zhaotian5868
去年换了一加 7Pro 作为主力机,刷了氧 OS,日常使用 GCM 推送机制优化后台节省电量,体验如丝般顺滑,非常满意。但是没高兴几天,问题就来了。

开始的时候没注意到推送问题,后来晚上有一天忘记充电,注意到包括 Gmail 在内的一堆应用在早上解锁后立刻弹出一堆消息,很多是睡觉就应该推送而没有提醒的。但是也有一些应用例如知乎却能正常的实时推送。

立刻去查看系统中电源优化等设置,取消各种电池优化后依然没用,锁屏五分钟后,就收不到消息了。

查看后台的 google play service,也没问题,有知乎的推送记录。

但是我注意到了推送有一个 priority, 只有 priority 是 High 的情况下,在锁屏后能实时推送,而 gmail 客户端是 Unknown,知乎是 High。
https://imgchr.com/i/8PyxXR

查了很多资料得知是 Android 的 doze mode 在作怪, 在手机未连接充电线并锁屏超过若干分钟后(未验证,一加 7p 是五分钟),手机进入 doze mode,系统为节省电量只给用户推送 High priority 的应用消息。

没错,谷歌认为 Email 这种通讯方式不是实时的,并且用户没有权限自行提高或降低某个应用推送的 Priority。

如果想在锁屏下实时接收 gmail 客户端以及其他 priority 是 Unknown 和 Normal 应用的推送消息,需要利用 adb 命令关闭 doze mode: adb shell dumpsys deviceidle disable

谷歌出 doze mode 的初衷是好的,但用几天下来并没有感受到关闭和开启 doze mode 在续航上的差异。
13510 次点击
所在节点    Android
44 条回复
vk42
2020-03-10 14:52:15 +08:00
没觉得有什么问题啊,email 设计就不是实时通讯,而且感觉实时通知反而很烦人而且分心。开启 gmail 只通知重要邮件觉得挺不错
dying4death
2020-03-10 14:58:40 +08:00
我也觉得没问题,睡觉就睡觉,真有急事不打电话?
zhaotian5868
2020-03-10 15:02:28 +08:00
@vk42 我觉得 email 这种应该是实时推送,可以不处理,但是需要及时推送,gmail 客户端即便设置了重要邮件也不会推的,outlook 客户端似乎可以。其次,发现这个问题还有一个原因是我在玩一个氪金手游,自己城堡被打的时候游戏会第一时间推送消息,但是这个 app 的推送优先级并不是 High。。我觉得谷歌应该给用户一个选项,可以自己调节推送的 priority 才对。
zhaotian5868
2020-03-10 15:05:33 +08:00
@dying4death 不只是 gmail, 国外很多即时通讯工具应用也是不推送的。
lwp2070809
2020-03-10 15:20:40 +08:00
email 确实没有被分类在 instant messaging 中, 不过我赞同楼主的意见, 我得有选择的权利
Biggoldfish
2020-03-10 15:20:50 +08:00
所以这是 Gmail 的 FCM message priority 设置的问题,而非 Android doze mode 的问题。LZ 的手机上在 doze 下 high priority FCM message 实时推送,normal priority message 延迟推送,完全符合 doze mode 的设计啊。
至于 Gmail 是否该设置成 high priority,则是另一个话题了。
vk42
2020-03-10 15:21:39 +08:00
@zhaotian5868 使用习惯不同吧。不过说到 outlook,想起来 gmail 对 exchange 帐号使用体验极差,明显是定时轮询方式,而且每次轮询的时候还会出来个通知……
zhaotian5868
2020-03-10 15:27:02 +08:00
@Biggoldfish 是的,你这样理解也没错。但是目前没有给用户权限调节 priority,解决的方法只有关闭 doze mode。其次从我目前的日常使用来看,doze mode 并没有显著提高手机续航。最后,白天在外面装口袋各种传感器在活跃的时候锁屏超过五分钟也会进入 doze mode,我觉得是非常不合理的。综上,我觉得是 doze mode 的问题。
zhaotian5868
2020-03-10 15:29:16 +08:00
@vk42 对的,国外很多客户是需要用 email 及时交流的,即时推送非常重要,即便不会立马去着手处理。
Bunnyranch
2020-03-10 16:12:03 +08:00
email 在不少地区其实就是用流量的短信,实时交流完全可以,还能贴附件。现在谁还短信啊 1 毛钱一条。。
w88975
2020-03-10 17:40:10 +08:00
我的 1 加 7 也是一样的
gmail 的拉取邮件不是实时的,经常收取验证码很头疼
mgrddsj
2020-03-10 17:57:33 +08:00
我的一加 5 在 Android 7.0 的时候,一加实验室里面有个实验性功能是可以设置一个 app 的通知的优先级的,后来系统更新之后就没了,也没添加到正式功能里面。
mxalbert1996
2020-03-10 17:59:20 +08:00
https://support.google.com/nexus/answer/7015477
这种东西搜索一下不就解决了?
cvbnt
2020-03-10 18:11:09 +08:00
为此我放弃了 Gmail 客户端,改用 smtp 第三方邮箱登录
zhaotian5868
2020-03-10 18:17:39 +08:00
@mxalbert1996 请认真读题:
“立刻去查看系统中电源优化等设置,取消各种电池优化后依然没用,锁屏五分钟后,就收不到消息了。”
zhaotian5868
2020-03-10 18:20:49 +08:00
@cvbnt 不止是 gmail,很多其他软件一样收不到通知,只能关闭 doze mode。
20015jjw
2020-03-10 19:37:38 +08:00
px 用户没体验到延迟
xuhaoyangx
2020-03-10 22:02:52 +08:00
你不知道华为 EMUI10 有多恶心。关闭电池优化 ,关闭 doze,都能在锁屏 20s 内 或 应用切屏到 HOME,给你阻断网络访问。有的老机器,甚至出现,返回 APP 后,继续阻断网络的 BUG
mxalbert1996
2020-03-10 22:56:34 +08:00
@zhaotian5868 那这就是第三方系统的问题了,原生系统这个设置是可以控制 Doze mode 的。
noqwerty
2020-03-10 23:50:48 +08:00
我一直以为是氧 OS 的锅……换了 treskmod 之后推送一直全部正常,之前用 OOS 也是各种延迟推送

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

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

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

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

© 2021 V2EX