首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Android Studio
V2EX  ›  Android

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

  •  
  •   yipkwong · 293 天前用 Android 发布 · 8711 次点击
    这是一个创建于 293 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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