用户加入Twilio会话时ConversationListener的onParticipantAdded未触发怎么办
可能的原因
- 监听注册时机晚于参与者加入:
onParticipantAdded仅会对你注册ConversationListener之后新加入会话的参与者触发,注册之前已经在会话里的参与者不会触发该回调。如果你的逻辑是先拉取会话、再加参与者、最后注册监听,就会出现该现象。你可以在注册监听后,手动调用conversation.getParticipants()先获取当前已有的全量参与者列表,再处理后续新增的回调。 - JWT访问令牌未授予参与者读取权限:生成Twilio访问令牌时,需要确保授予了会话的参与者读取权限,若令牌缺少相关权限,SDK无法接收到参与者的状态更新推送,自然不会触发对应回调。
- 参与者未被实际加入Conversations会话:Twilio的视频Room参与者和Conversations的会话参与者是两套独立体系,如果你仅将用户加入了视频通话的Room,没有同步调用Conversations的
add()方法将用户添加到会话实例中,Conversations的监听不会触发参与者相关回调。 - SDK版本存在已知bug:部分旧版本的Twilio Conversations Android SDK存在
onParticipantAdded回调不触发的已知问题,尤其是在用户通过邀请加入会话的场景下,可以先将SDK升级到最新稳定版复现验证。 - 回调方法签名不匹配:检查你重写的
onParticipantAdded方法签名是否和SDK定义完全一致,比如部分版本SDK的参数为可空类型Participant?,如果你的参数声明为非空Participant,会被识别为方法重载而非重写,不会被SDK回调。可以添加@Override注解检查是否存在编译报错,确认方法是正确重写的SDK接口。
内容的提问来源于stack exchange,提问作者Ban Markovic
相关产品推荐
相关产品推荐

