2015-12-11 8 views
1

Я пытаюсь извлечь объединенный список членов из определенной группы на основе комнаты JID, есть пара методы существует, указанной ниже:Fetch список объединенных членов из группы, xmpp;

  • MultiUserChat.getMembers(); Он возвращает XMPPError: forbidden - auth
  • MultiUserChat.getOccupants(); Это только информация о себе
  • MultiUserChat.getParticipants(); Он вернется XMPPError: forbidden - auth

Но ни один из работающих становится исключением XMPPError: forbidden - auth, это, кажется, есть что-то проблема с частной жизнью, который я не смог выяснить.

Примечание: JID название комнаты в виде «roomName @ сервис»

+0

Я считаю getOccupants() является правильным, но он должен вернуть больше, чем просто себя (предполагая, что есть и другие, в в комнате, конечно ...) – MattJ

+0

да, вы правы, но я также удивлен, что «трансляция присутствия для: модератор/участник/посетитель» в эффекте комнаты для 'getOccupants()'? – RobinHood

+0

Да, он вернет только тех, кто сейчас находится в комнате. Любой, кто покинет его, не будет возвращен. Чтобы получить автономных членов, вы можете использовать getMembers() и другие, но в зависимости от сервера и его конфигурации у вас может не быть разрешения на просмотр этих списков. – MattJ

ответ

-1
Use this : 

multiUserChatManager = MultiUserChatManager.getInstanceFor(XMPPConnection); 
MultiUserChat muc =multiUserChatManager.getMultiUserChat("[email protected]"); 
     try { 
      List<Affiliate> admin=muc.getAdmins(); 
      System.out.println("Admin=====>>>"+admin); 
      List<String> userlist=muc.getOccupants(); 
      List<Affiliate> member=muc.getMembers(); 
      List<Occupant> memBer=muc.getParticipants(); 
      List<Affiliate> owner=muc.getOwners(); 

      System.out.println("userlist=====>>>"+ userlist.toString()); 
      System.out.println("usercount=====>>>"+ muc.getOccupantsCount()); 
     } catch (SmackException.NoResponseException e) { 
      e.printStackTrace(); 
     } catch (XMPPException.XMPPErrorException e) { 
      e.printStackTrace(); 
     } catch (SmackException.NotConnectedException e) { 
      e.printStackTrace(); 
     } 
Смежные вопросы