从组中获取加入的成员列表,xmpp;

时间:2015-12-11 05:50:11

标签: android xmpp smack groupchat

我试图根据房间JID从特定群组中获取加入的会员列表,有几种方法存在,如下所述:

  • MultiUserChat.getMembers();它返回XMPPError: forbidden - auth
  • MultiUserChat.getOc​​cupants(); 仅返回自我信息
  • MultiUserChat.getParticipants();它返回XMPPError: forbidden - auth

但是没有一个工作得到异常XMPPError: forbidden - auth,似乎隐私存在问题,我无法弄明白。

注意:JID表格中的房间名称" roomName @ service"

2 个答案:

答案 0 :(得分:0)

根据xmpp文档,房间/组应该是非匿名的,以检索所有成员列表。因此,请尝试在服务器端的.yml或配置文件中设置anonymous = false,或者您也可以在创建会议室时在配置中进行设置。

请至少不要隶属关系来检索成员列表

答案 1 :(得分:-1)

Use this :

multiUserChatManager = MultiUserChatManager.getInstanceFor(XMPPConnection);
MultiUserChat muc =multiUserChatManager.getMultiUserChat("dopee@conference.104.155.155.5");
        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();
        }