通过阅读asmack来源,在创建聊天室并邀请用户加入时,该消息会添加一个扩展MUCUser.Invite
。
public void invite(Message message, String user, String reason) {
// TODO listen for 404 error code when inviter supplies a non-existent JID
message.setTo(room);
// Create the MUCUser packet that will include the invitation
MUCUser mucUser = new MUCUser();
MUCUser.Invite invite = new MUCUser.Invite();
invite.setTo(user);
invite.setReason(reason);
mucUser.setInvite(invite);
// Add the MUCUser packet that includes the invitation to the message
message.addExtension(mucUser);
connection.sendPacket(message);
}
我使用message.getExtension( "x","http://jabber.org/protocol/muc#user")
,但它返回DefaultPacketExtension,而不是MUCUser.Invite。所以我怀疑我怎么能得到邀请者的名字。
任何帮助都会受到赞赏!
答案 0 :(得分:0)
使用message.getBody(),它可以获得包含邀请者名称的邀请原因和内容。使用subString(),我得到了邀请者名称。 但我认为这不是一个好的解决方案,我对这个问题的疑问没有解决。