2012-05-04 54 views

回答

2

哪个列表?

如果您是MUC的居住者,换句话说,如果您已加入MUC,您只能致电getOccupants()

+0

我打电话给getOc​​cupants(),但它并没有全部返回占用者列表。根据我的问题,我问了一个问题,看看这个http://stackoverflow.com/questions/16335872/how-to-get-list-of-occupants-from-room-in-multiuserchat,并告诉我如何解决此问题。 –

1

getOccupants()不适合我。所以,你可以试试下面的代码:

try {   
     ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(xmppConn); 
     DiscoverItems discoItems = discoManager.discoverItems(roomJID); 
     Iterator<DiscoverItems.Item> occupants = discoItems.getItems(); 

    } catch (XMPPException e) { 
     e.printStackTrace();     
    } 
+0

我正在使用4.1.0 rc1,我无法通过getOc​​cupants()获得占有者。 ServiceDiscoveryManager适合我。 – Hitendra

0

我能够通过将参数作为MultiUserChat对象简单下面的方法来获取列表用户可以在聊天室的XMPP。

public static List<String> findMulitUser(MultiUserChat muc) { 
    List<String> listUser = new ArrayList<String>(); 
    Iterator<String> it = muc.getOccupants(); 
    // Traverse the chat room name 
    while (it.hasNext()) { 
     // Chat room members name 
     String name = StringUtils.parseResource(it.next()); 
     System.out.println("Name Of Occupants------>" + name); 
     listUser.add(name); 
    } 
    return listUser; 
}