2010-03-21 39 views
1

我试图得到一个缺口在Jabber ID在一个多用户聊天,但下面的代码只返回NULL:如何获得Jabber的ID为多用户聊天尼克

class JabberMUCMessageListenerAdapter implements PacketListener { 

    private final MultiUserChat muc; 

    public JabberMUCMessageListenerAdapter(MultiUserChat muc) { 
     this.muc = muc; 
    } 

    @Override 
    public void processPacket(Packet p) { 
     if (p instanceof Message) { 

      final Message msg = (Message) p; 

      String jid = muc.getOccupant(msg.getFrom()).getJid(); // returns null 

      ... 
     } 
    } 
} 

有谁知道,我做错了什么?

+0

你想得到* real * JabberID或“local”(例如* [email protected]/nick*)? – 2010-05-16 11:40:39

+0

我认为这是'真正'的ID(什么是'本地'ID)? 其实,我发现我做错了: 会议室是这样配置的,只有版主才能看到真实的ID。不知道这是否与“匿名”会议室同义。 – Kutzi 2010-05-16 17:41:53

回答

1
+1

“如果此信息是从存在中提取的,并且房间是半匿名或全匿名的,则答案将为空。” 第一部分是真实的,但我不认为房间是匿名的(如果是这样的话,我怎么才能找到它) 使用Pidgin我可以访问JID,所以必须有一种方法使用Smack,也一定不是吗? – Kutzi 2010-03-22 09:08:27