如何使用amack获取xmpp的邀请名称?

时间:2012-12-24 02:12:42

标签: android xmpp smack asmack

通过阅读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。所以我怀疑我怎么能得到邀请者的名字。 任何帮助都会受到赞赏!

1 个答案:

答案 0 :(得分:0)

使用message.getBody(),它可以获得包含邀请者名称的邀请原因和内容。使用subString(),我得到了邀请者名称。 但我认为这不是一个好的解决方案,我对这个问题的疑问没有解决。