yipkwong
V2EX  ›  Android

微信如何在安卓 8.0 使用 gcm 推送,不要常驻后台

  •  
  •   yipkwong · Jun 29, 2018 via Android · 28692 views
    This topic created in 3051 days ago, the information mentioned may be changed or developed.

    如问题所示,有什么办法可以让微信的消息推送走 gcm,不要老是常驻后台,莫名耗电

    56 replies  •  2018-11-06 19:06:26 +08:00
    xiva1209
    xiva1209
    Jun 29, 2018❤️2
    1
    用应用管理这个 xposed 模块
    F1024
    F1024
    Jun 29, 2018
    2
    好像有个 GCM 代收?
    yipkwong
    yipkwong
    OP
    Jun 29, 2018 via Android
    3
    @F1024 app 吗?
    yipkwong
    yipkwong
    OP
    Jun 29, 2018 via Android
    4
    @xiva1209 可以实现 gcm 推送,然后拉起微信吗?
    mozutaba
    mozutaba
    Jun 29, 2018
    5
    微信好像不是靠 gcm 推送,无论哪个版本
    alvin666
    alvin666
    Jun 29, 2018 via Android
    6
    酷安有个 app 能代收,要 xp
    honeycomb
    honeycomb
    Jun 29, 2018 via Android❤️1
    7
    把 appops 里微信的 run in background 项设置为 ignore 即可,不过 Android 8.0 的实现有 bug,只会杀掉第一个 service (具体看 oasisfeng 提交的 issue report ),因此效果没有在 Android 8.1 的好
    xiva1209
    xiva1209
    Jun 29, 2018
    8
    @yipkwong 是的它有一个 gcm 代收功能,可以拉起微信
    rinex20
    rinex20
    Jun 29, 2018 via Android
    9
    play 版本一直可以 gcm.
    yipkwong
    yipkwong
    OP
    Jun 30, 2018 via Android
    10
    @rinex20 可以,但是后天杀了进程后就没有办法拉起微信收信息了?所以不知道怎么办
    yipkwong
    yipkwong
    OP
    Jun 30, 2018 via Android
    11
    @honeycomb 安卓 8.1 实现效果怎样?
    yipkwong
    yipkwong
    OP
    Jun 30, 2018 via Android
    12
    @yipkwong 后台
    yipkwong
    yipkwong
    OP
    Jun 30, 2018 via Android
    13
    @honeycomb 自己试过了可以走 gcm 但是没办法拉起微信
    crayygy
    crayygy
    Jun 30, 2018
    14
    @yipkwong #13 主动杀进程的 GCM 推不到
    boileryao
    boileryao
    Jun 30, 2018
    15
    如果 GCM/FCM?是可以用的话 微信是会优先用 GCM/FCM?的
    skylancer
    skylancer
    Jun 30, 2018
    16
    @boileryao 并不是这个策略
    yipkwong
    yipkwong
    OP
    Jun 30, 2018 via Android
    17
    @boileryao 好像是不会优先使用 gcm
    yipkwong
    yipkwong
    OP
    Jun 30, 2018 via Android
    18
    @crayygy 但是一直后台有进程即使走 gcm 也没有什么意义啊,tg 没有后台进程走 gcm 照样有消息推送,难道这就是差距?
    BaiMax
    BaiMax
    Jun 30, 2018 via Android
    19
    酷安上有一个 GcmForMojo,消息是通过 gcm 的,配合服务端可以基本脱离微信 app,之前试过有一定的延迟
    BaiMax
    BaiMax
    Jun 30, 2018 via Android
    20
    还有一种方案是通过 telegram 转发的,没试过,不清楚体验怎么样。教程链接 https://51.ruyo.net/8054.html
    boileryao
    boileryao
    Jul 1, 2018
    21
    我当时微信二面的时候问过面试官的, 难道是国内不一样或者改了, 明天我再问问……
    @skylancer @yipkwong
    yipkwong
    yipkwong
    OP
    Jul 1, 2018 via Android
    22
    @boileryao 谢谢,国内这个做的还是跟 tg 个人感觉有点距离
    yipkwong
    yipkwong
    OP
    Jul 1, 2018 via Android
    23
    @BaiMax 那个软件我会试下,谢谢,tg 转发的话原理是转发网页版的信息,然而网页版有一些东西不能收到,所以有缺点,只是想走 gcm 省一下电,不知道有没有什么优的办法
    honeycomb
    honeycomb
    Jul 1, 2018 via Android
    24
    @yipkwong 当时确实能观察到 8.0 效果比较差(经常拉不起来),8.1 的效果好
    skylancer
    skylancer
    Jul 2, 2018
    25
    @boileryao 优先长连接,长连接挂了才会走 FCM
    ccl945
    ccl945
    Jul 2, 2018
    26
    墙内各种小米推送,华为推送啥的,gcm 不存在的。
    yipkwong
    yipkwong
    OP
    Jul 3, 2018 via Android
    27
    @honeycomb 难道 8.1 比 8.0 稳定?
    honeycomb
    honeycomb
    Jul 3, 2018 via Android
    28
    @yipkwong 我有这些猜测:

    1,估计是前面说的那个 bug 导致的,8.0 里微信的 service 杀不光(杀掉了微信的 push service,但别的 service 还有存活,便拒绝接受从 gcm 过来的信号),间接导致 gcm 信息没有拉起微信

    2,另一个可能性是 run_in_background 的限制并没有最初 dianne hackborn 那个 commit 说得那么有力(倒是 Android 9 那个新增的 run_any_in_background 可能才真正达到了完整的效果),导致 8.1 拉得起微信而 8.0 常常拉不起。
    yipkwong
    yipkwong
    OP
    Jul 4, 2018 via Android
    29
    @honeycomb 表示自己的 miui 系统最新跟新到安卓 8.0 没有 8.1,绝望
    honeycomb
    honeycomb
    Jul 4, 2018 via Android
    30
    @yipkwong 避免使用小米的修改版 Android
    yipkwong
    yipkwong
    OP
    Jul 4, 2018 via Android
    31
    @honeycomb 为什么?你用安卓吗,用的话用原生吗?
    honeycomb
    honeycomb
    Jul 4, 2018 via Android
    32
    @yipkwong
    小米的 appops 有问题(会自动复原默认值),即便没有 8.0 那个 bug,事实上没法用 run_in_background 的办法。

    我确实用原生的
    yipkwong
    yipkwong
    OP
    Jul 4, 2018 via Android
    33
    @honeycomb 原生好用吗?用啥原生,推荐一下,谢谢
    philobscur
    philobscur
    Jul 4, 2018
    34
    @yipkwong miui 虽然个人嫌弃广告太多,但是本地化做的应该是国内最好的。如果不是肉身翻墙没必要强迫自己去用原生的。
    yipkwong
    yipkwong
    OP
    Jul 4, 2018 via Android
    35
    @philobscur 我平时用 miui 也有翻墙,只想想让微信走下 gcm 但是效果非常不理想,有没有什么解决方法吗?
    honeycomb
    honeycomb
    Jul 5, 2018 via Android
    36
    @yipkwong
    原生不见得好用。我也不推荐亲儿子(硬件质量比较差,原生系统不一定喜欢),除非确实真的想用。

    小米两月份的时候做了一个投票(当然是在推上)问 MIUI 和 Android one 里面二选一,大多数选了原生 Android,小米很快删掉了这个投票。
    yipkwong
    yipkwong
    OP
    Jul 5, 2018 via Android
    37
    @honeycomb 你用啥原生系统?
    NaiveSimpleYoung
    NaiveSimpleYoung
    Jul 5, 2018
    38
    @honeycomb 233333333333333
    honeycomb
    honeycomb
    Jul 5, 2018 via Android
    39
    @yipkwong 亲儿子系列
    skylancer
    skylancer
    Jul 6, 2018
    40
    @honeycomb 我曾经用过,AppOps 并没有问题... 至于为什么是曾经用过,那是个悲伤的故事
    skylancer
    skylancer
    Jul 6, 2018
    41
    @crayygy 主动杀的可以推的到,前提是使用高优先级推送,GMS 会发 intnet 拉起来。然而微信并没有使用高优先级推送
    yipkwong
    yipkwong
    OP
    Jul 6, 2018 via Android
    42
    @honeycomb 搞得我想用亲儿子了,哈哈哈
    yipkwong
    yipkwong
    OP
    Jul 6, 2018 via Android
    43
    @skylancer 那就是说微信用 gcm 推送是不可能的咯??
    skylancer
    skylancer
    Jul 6, 2018
    44
    @yipkwong 我自己用的大法,AppOps 干了 run_in_background 感觉效果很不错,不知道是不是有做修改什么的
    yipkwong
    yipkwong
    OP
    Jul 6, 2018 via Android
    45
    @skylancer miui 可以做到吗?
    skylancer
    skylancer
    Jul 6, 2018
    46
    @yipkwong 我觉得 MIUI 你基本不用怎么调教了吧,你是怎么体验到耗电问题的?
    yipkwong
    yipkwong
    OP
    Jul 6, 2018 via Android
    47
    @skylancer 耗电还行,主要想再省电一点,有没有什么方法吗,miui
    Planehi
    Planehi
    Jul 7, 2018 via Android
    48
    昨天刚配置了 gcmformojo 正在使用中
    yipkwong
    yipkwong
    OP
    Jul 7, 2018 via Android
    49
    @Planehi 自己在服务器里搭建吗?
    Planehi
    Planehi
    Jul 7, 2018 via Android
    50
    @yipkwong 是的
    yipkwong
    yipkwong
    OP
    Jul 7, 2018 via Android
    51
    @Planehi 那些手机语音通话接受的到吗?
    Planehi
    Planehi
    Jul 7, 2018 via Android
    52
    @yipkwong 收不到,只能收文字信息
    yipkwong
    yipkwong
    OP
    Jul 7, 2018 via Android
    53
    @Planehi 好吧,那还是有缺点的
    skylancer
    skylancer
    Jul 7, 2018
    54
    @yipkwong 我觉得没什么可以折腾的了,如果想省电的话,其实建议自搭梯子,然后把 libev 的超时时间改到半小时以上,因为默认 60 秒天天重连还不如不用梯子
    yipkwong
    yipkwong
    OP
    Jul 7, 2018 via Android
    55
    @skylancer 好的,谢谢
    zxq1002
    zxq1002
    Nov 6, 2018
    56
    删掉 telegram X 进程后,426 能看到有收到 gcm 记录,但没有收到通知消息是杀原因?不能强杀进程么
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1470 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1170ms · UTC 18:38 · PVG 02:38 · LAX 10:38 · JFK 13:38
    ♥ Do have faith in what you're doing.