FCM 推送:
融云采用的一直都是透传 (data方式), FCM分为notification和data两种方式.
需要开启统计功能的用户对关闭auto_init的疑问, google推送官方文档: https://firebase.google.com/docs/cloud-messaging/android/client?authuser=0
(Rong推送, 也是透传式)
沉浸式状态栏 输入框冲突:
https://blog.csdn.net/smileiam/article/details/69055963
会话置顶:
会话置顶状态也是会被同步到服务端的, 在连接后直接从服务端取会话置顶状态, 直接在端上生成会话了, 这个不依赖于消息, 且无法关掉.
厂商推送暴露给用户接口:
华为 — HwPush 小米— MiPushMessageReceiver Vivo— VivoPush
用户复写相应获取Token的方法后, 把我们的逻辑也拷贝进去, 然后再注册给PushClient.
**FCM第一次杀死无法接到推送的现象: **
1.一切都配置完成之后, 开始测试. 第一次启动App, 杀死. 发送测试消息. 收不到推送.
2.再次启动App, 杀死, 发送测试消息. 这次能收到推送了.
第一次杀死App之后, 发送测试消息, 可以看到log中会即时打出:
09-17 11:50:34.298 W/GCM ( 2025): broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=com.rongcloud.fcm_demo (has extras) }
GCM打出的log, result=CANCELLED. 广播的intent发送回调是: cancelled. 也就是这个广播还没发送到app层/sdk层, 就已经被系统拦截到了. 失败了.
最开始以为是App关于GCM, 或者FCM的权限问题. 在manifest里遗漏了某个配置, 或者App的通知权限没有打开. 但是做了一番检查以及配置之后, 这个问题还是存在.
之后求助于Google和StackOverflow, 发现有些人是遇到过类似问题的, 但是都没有一个很好的解决方案, 把网上的解决方法一一尝试之后, 这个顽固的问题还是存在.
后来也是一个偶然的发现, 如果我在IDE中直接点击“Run”把App安装运行到手机上, 会出现这个问题, 但是我把项目打包成apk后, 再安装到手机上. 这个问题就消失了, 第一次杀死App之后, 也是可以顺利收到消息的. 这样才把这个问题给解决掉.
Android app杀死:
"确认了只要Android段融云ipc进程还在运行,就认为用户没有下线"
杀死后, 主进程死亡, 对应的私有IPC进程会一同死亡吗
进程死亡与否, 是否影响TCP连接.
已读回执与服务端同步的问题:
RC:ReadNtfMsg + RC:SRSMsg
网友评论