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

关于 Google Play 服务和 FCM 的一些疑问

  •  
  •   Hypixel · 2017-10-01 15:34:44 +08:00 via Android · 14703 次点击
    这是一个创建于 780 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在 Google Play 商店下载的微信支持 FCM ( Firebase Cloud Messaging )

    但是用 Lineage OS ( Android 7.1.2 )+ OpenGApps pico (最精简的 Google Play 服务),已将微信黑域,全局挂 SS,收不到微信的推送?

    将微信取消黑域后能收到推送,应该是微信自己的 Push Service 推送的,而不是 Google Play 服务推送的

    所以怎样才能使微信通过 FCM 推送呢?

    黑域影响 FCM 推送吗?

    有没有 App 能检测本机(已安装 Google Play 服务)能否正常接收 FCM ?要自己做个 App 整合 Firebase 就算了吧。。。
    30 回复  |  直到 2019-08-01 10:50:48 +08:00
        1
    fhbyljj   2017-10-01 16:07:33 +08:00 via Android
    同问
        2
    wengjin456123   2017-10-01 16:12:35 +08:00 via iPhone
    同问
        3
    Love4Taylor   2017-10-01 16:19:58 +08:00   ♥ 1
    微信的 FCM 算是个鸡肋
    如果没记错的话是通过 FCM 拉起 微信自己的 Push 服务... (记错别砍我 233333

    另外 不记得从哪看到的说微信的 FCM 需要手动开 即使是 Play 版: 清空 APP 数据 --- 全局代理 --- 登录 --- APP 设置关闭并重新打开通知

    另外外 没记错的话黑域作者之前说过 不要黑域微信 并且将微信设为电池未优化...
        4
    kkren   2017-10-01 16:34:59 +08:00 via Android
    @Love4Taylor 不能说鸡肋吧,不拉起自己的 push 难道把所有的聊天明文发给谷歌?
        5
    Love4Taylor   2017-10-01 16:36:11 +08:00
    @kkren #4 那么其他的支持完整 FCM 的通讯软件呢 咋处理的
        6
    wujysh   2017-10-01 16:58:58 +08:00
        7
    pagxir   2017-10-01 17:17:19 +08:00
    将微信设置成电池优化,然后黑屏时候将微信的长链接叉掉,微信就会自动走 FCM 了。可以通过 *#*#426#*#* 看看有没有微信的记录。
        8
    pagxir   2017-10-01 17:20:34 +08:00
    在国内的 FCM 心跳时间必须 < 900 秒,否则影响推送的实时性以即待机功耗。
        9
    zhangweiqi   2017-10-01 17:27:01 +08:00 via Android
    @Love4Taylor 像环聊和 YouTube,未黑域名单,但在黑域里看是未启动的。可以直接收到消息,之前把环聊和 YouTube 加进去没收到
        10
    zhangweiqi   2017-10-01 17:28:12 +08:00 via Android
    @pagxir 环聊是马上收到的,比电脑慢 0.5 秒
        11
    Love4Taylor   2017-10-01 17:31:16 +08:00
    @zhangweiqi #9 Weibo intl 我试过黑域了并且无后台任何进程能通过 FCM 接收到消息
        12
    zhangweiqi   2017-10-01 17:33:50 +08:00 via Android
    @Love4Taylor tg 试过么?我 tg 从来没收到过。 环聊和 YouTube 还比较好没挂梯子也能收到
        13
    Love4Taylor   2017-10-01 17:38:39 +08:00
    @zhangweiqi #12 试过.... TG 关闭后台驻留切换到 FCM 然后 黑域并杀死后台 可以收到消息
        14
    honeycomb   2017-10-01 17:47:30 +08:00 via Android
    用这样的组合可以迫使微信走 GCM:

    1,Android 8.0
    2,阻止微信使用后台(等价于将微信的 RUN_IN_BACKGROUND 设置为 ignore )
    3,(可能不必要)使用绿色守护的浅睡的方式休眠微信。

    可以用 play 上的一个应用,叫做 pnf root,可以查看 play 的一些调试信息,比如是否收到了 gcm 信息(这个界面也可以通过拨号盘输入一个特定内容打开,你可以去网上找一下,很容易,我背不下来)
    另外把 gcm 的心跳间隔减少一些。

    注:
    a:步骤 3 替换为黑域的类似操作后似乎无法让微信走 GCM。
    b:如果在 android7.x 执行步骤 2 似乎也是无效(微信会全程无法收到 gcm 消息)的
        15
    honeycomb   2017-10-01 17:49:40 +08:00 via Android
    楼上的 @pagxir 已经给出代码了
        16
    Love4Taylor   2017-10-01 18:16:28 +08:00
    @honeycomb #14 gcm 心跳时间 我记得是 wifi 还是数据 其中一个现在已经没法改了吧 另外 刚测了下 Oreo 关闭 微信 的 Background activity 后 发消息以及视频 都没有任何提示.... 426 里面微信的记录....
        17
    xinhugo   2017-10-01 18:17:06 +08:00
    用这样的组合可以迫使微信走 GCM:

    0,可连上 GCM
    1,Android 7
    2,微信在电池优化列表
    3,移动数据访问中“后台数据”、“不限制数据流量”权限开启
        18
    xinhugo   2017-10-01 18:17:50 +08:00
    补充 17 楼,使用黑域
        20
    pagxir   2017-10-01 18:30:30 +08:00 via Android
    @Love4Taylor oreo 现在在数据网络下缺省是 9 分钟左右。wifi 下没注意,看调试信息似乎是动态适应的。
        21
    skylancer   2017-10-01 23:05:28 +08:00   ♥ 1
    最早的 GCM(还没 FCM)的要求就是,GCM 负责接受推送信息并传递给 App,所以实际上采用 GCM 的 App 还是需要保持在后台。所以这个时候,就要看流氓程度了
    到了 FCM 年代,多了一个高优先级推送,FCM 会负责把 App 给拉起来
    然而微信也并没有使用高优先级推送



    @honeycomb 一个 300K 不到的 Activity Launcher 就能搞定了,不用这个庞然大物

    @pagxir 并不是动态适应。很简单的证明方法,SmarTone 的超时时间在 800 秒左右,曾经的 CMHK 的超时时间在 30 分钟,现在已经调整到 1X 分钟,但是 Play Service 并没随着更新
        22
    pagxir   2017-10-01 23:18:29 +08:00
    @skylancer CMHK 是什么鬼?我说的是 WIFI 下,Anrdroid O 的 GCM 会动态调整心跳时间。你输入 *#*#426#*#* 就会看到不同的热点的心跳是不一样的。
        23
    skylancer   2017-10-01 23:19:49 +08:00
    @pagxir 啊啊 不好意思没看到说的是 WiFi.. WiFi 下确实是动态适应的
        24
    myliyifei   2017-10-01 23:53:43 +08:00 via Android
    @pagxir =900 秒不行吗
        25
    NeusoftGin   2017-10-02 00:49:15 +08:00
    0.8.5 版黑域.有专门微信 GCM 优化
        26
    xmumiffy   2017-10-02 09:51:28 +08:00   ♥ 1
    @honeycomb 不用记 就是 GCM 对应的数字键盘位 426
        27
    edsgerlin   2017-10-02 15:27:08 +08:00
    @kkren 可以在微信用户端生成个 RSA 密钥对, 推送消息全部 RSA 加密然后交给 Google,FCM 拉起客户端然后本地私钥解密。这只是想不想做,而不是能不能做的问题。
    Signal 之类的端对端加密 IM,用 FCM 推送用得好好的。
        28
    leobin   2017-10-04 11:19:50 +08:00
    有几个注意点,1.安装的时候最好是全局代理,让微信成功注册 gcm,可以发个消息测试下,如果在 426 里面有微信的记录说明注册成功 2.黑域方式选待机,微信保持同步 3.微信 gcm 有传递信息,不会拉起微信 @Love4Taylor
        29
    trys1   2018-02-27 16:02:11 +08:00
    同问,有没有什么方法,既可以休眠微信,又可以及时收到消息
        30
    ccloudk   111 天前
    我是一条 2019 年下半年的用户回复:1、清空微信 storage。2、最好是全局代理模式登录进去,然后消息接受测试。(接收消息最好在全局代理情况下的 WIFI 和数据网络各尝试测试一次) 3、FCM 的 LOG 里面都有日志。4、最终测试:FORCE stop 后接收消息 log 里面有 FAILED 提示。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2586 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 32ms · UTC 12:52 · PVG 20:52 · LAX 04:52 · JFK 07:52
    ♥ Do have faith in what you're doing.