yipkwong
V2EX  ›  Android

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

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

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

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

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

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