wildfirechat / android-chat

即时通讯,聊天,野火IMAndroid客户端,支持Android 4.x —— 最新
http://docs.wildfirechat.cn
Other
2.51k stars 863 forks source link

安卓13(小米)切换当前为其他app后,无法接收到消息(onReceiveMessage不触发) #844

Closed lykiao closed 6 months ago

lykiao commented 7 months ago

操作、问题及现象说明:

小米android13运行二开后app(为当前app时),正常能收到消息; 在不手机杀进程的情况下,切换其他app为当前app(比如打开微信),无法接收到消息; 使用demo在同一台机器debug,发生同样的现象,debug跟踪发现onReceiveMessage没有被触发; 但是,在小米android9中运行正常; 怀疑是不是android13的变更导致service或receiver权限方面受到限制,需要开启相应权限?

预期结果:

在android13中可以和android9一样,切换app后可以正常收到在线消息

demo相关代码截图:

image

heavyrain2012 commented 7 months ago

有可能是系统的省电策略问题。当应用进入到后台后,系统可以有如下几种选择: 1,立即冻结应用 2,允许活跃一会儿再冻结 3,允许一直活跃 每个系统的默认选项是不同的,一般也可以在系统设置中选择每个应用的策略。如果被冻结也是正常行为,这时需要接入推送实现消息通知

lykiao commented 7 months ago

在机器小米android13和华为手机上测试,此方法均无效。 怀疑此问题还是跟android版本有关系,毕竟 android9的手机也有省电模式,打开或关闭都没有任何影响。

heavyrain2012 commented 6 months ago

我们针对这个问题加了一些修改,如果消息在10秒钟之内没有被收走,那么就是离线了,所以这样改之后最长会有10秒钟的推送延迟。请邮件联系我们更新版本