具有所有者权限的多用户聊天室加入 android + asmack
Posted
技术标签:
【中文标题】具有所有者权限的多用户聊天室加入 android + asmack【英文标题】:Multi User Chat room join with owner privilege android + asmack 【发布时间】:2014-03-27 06:37:42 【问题描述】:多用户聊天室加入
如何在 android 中以“所有者”身份加入多用户聊天室?目前我正在使用以下代码加入多用户聊天室。但是我只是作为参与者加入。
MultiUserChat muc = new MultiUserChat(connection, group);
muc.join(nickNameOfUser, password);
【问题讨论】:
【参考方案1】:MUC 成员/所有者列表维护在 MUC 服务器端,并自动授予您创建/加入房间的所有者权限。如果您没有获得所有者权限,则房间是由其他人创建的。
【讨论】:
@vitalyster..即使我加入了我创建的房间,我仍然以参与者的身份加入。我正在使用以下代码创建房间。名册名册 = getRoster(account); roster.createGroup(nick); 这不是房间创建代码,使用:MultiUserChat muc = new MultiUserChat(connection, group); muc.create(nickNameOfUser);
@vitalyster...我尝试使用您提出的 MultiUserChat 对象创建房间。但它给了我一个 ClassCastException。
ClassCastException 在您尝试转换不兼容的对象时抛出,与 MUC 所有权无关。显示您的完整代码和完整错误。【参考方案2】:
// In Smack version 4.1.4 i am able to join Room by following way.
MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(connection);
manager.addInvitationListener(new InvitationListener()
@Override
public void invitationReceived(XMPPConnection conn, MultiUserChat room, String inviter, String reason, String password, Message message)
try
room.join(userName);
catch (SmackException.NoResponseException e)
e.printStackTrace();
catch (XMPPException.XMPPErrorException e)
e.printStackTrace();
catch (SmackException.NotConnectedException e)
e.printStackTrace();
);
【讨论】:
以上是关于具有所有者权限的多用户聊天室加入 android + asmack的主要内容,如果未能解决你的问题,请参考以下文章
如果用户不在聊天室中,Android quickblox 如何接收消息
如何授予新创建的角色权限以使用 JDA 库加入新创建的语音聊天?