【问题标题】:How can i get ChatRoom Members list in Asmack?如何在 Asmack 中获取 ChatRoom 成员列表?
【发布时间】:2014-08-05 10:05:09
【问题描述】:

我正在使用 Asmack4.0 使用明火,我可以登录,注册用户,但我也想从创建的聊天室获取用户列表,我正在使用此代码

Collection<HostedRoom> rooms = null;
    try {
        ServiceDiscoveryManager discoManager = new ServiceDiscoveryManager(XMPPChatDemoActivity.connection);
        rooms = MultiUserChat.getHostedRooms(XMPPChatDemoActivity.connection, "conference.centos65");

        Log.e("", "" + rooms.size());
        for (HostedRoom room : rooms) {
            Log.e("", "" + room.getName());
            MultiUserChat muc = new MultiUserChat(XMPPChatDemoActivity.connection, room.getJid());

            ArrayList<String> tempArrayList = new ArrayList<String>();
            tempArrayList = findMulitUser(muc);

            listDataChild.put(room.getName(), tempArrayList);

        }

    } catch (Exception e) {
        e.printStackTrace();
    }

public static ArrayList<String> findMulitUser(MultiUserChat muc) {

    ArrayList<String> listUser = new ArrayList<String>();

    Iterator<String> it = muc.getOccupants();

    // size of `it` getting always zero

    while (it.hasNext()) {
        String name = StringUtils.parseResource(it.next());
        listUser.add(name);
        Log.e("", "" + name);
    }
    return listUser;
}

但是我得到Iterator&lt;String&gt; it 的大小总是为零,请纠正我在哪里做错了?谢谢。

【问题讨论】:

    标签: android openfire asmack


    【解决方案1】:

    如果您没有加入 MUC,则无法获取当前居住者。

    使用

    muc.createOrJoin(String);
    

    创建或加入 MCU。

    【讨论】:

      猜你喜欢
      • 2020-06-07
      • 1970-01-01
      • 2014-06-23
      • 2020-11-21
      • 2017-03-27
      • 1970-01-01
      • 2017-03-30
      • 2021-07-03
      • 1970-01-01
      相关资源
      最近更新 更多