2010-03-21 38 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