2012-05-04 1 views
0

Я работаю над ASmack. Можно ли получить доступ к списку пользователей в чате, используя asmack? http://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/muc.html Этот список не отображается. Пожалуйста, дайте мне некоторое представление.MultiUserChat получить пользователя в чате?

ответ

2

Какой список?

Вы можете позвонить только getOccupants(), если вы являетесь жителем MUC или, другими словами, если присоединились к MUC.

+0

Я звоню в getOccupants(), но он не возвращает список пассажиров все время. согласно моей проблеме, я спросил один вопрос в SO, посмотри на этот 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, и я не могу получить пассажиров getOccupants(). ServiceDiscoveryManager работает для меня. – Hitendra

0

я был в состоянии получить список пользователя доступны в чате Of XMPP простого метода СЛЕДУЮЩЕЙ передачи параметра в качестве MultiUserChat объекта.

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; 
}