Android 如何获取用户已参与的MUC房间列表?

Android 如何获取用户已参与的MUC房间列表?,android,xmpp,ejabberd,asmack,multiuserchat,Android,Xmpp,Ejabberd,Asmack,Multiuserchat,我正在使用MUC进行使用smack的群聊。我想得到用户已经参与的MUC房间列表,比如whatsapp 使用belove代码,我只得到用户加入的房间,但我需要得到我已经成为成员的所有组 这是我的密码: List<EntityBareJid> joinedRoomes = manager.getJoinedRooms(conn); for (EntityBareJid jRoomName : joinedRoomes) { L

我正在使用MUC进行使用smack的群聊。我想得到用户已经参与的MUC房间列表,比如whatsapp

使用belove代码,我只得到用户加入的房间,但我需要得到我已经成为成员的所有组

这是我的密码:

 List<EntityBareJid> joinedRoomes = manager.getJoinedRooms(conn);

            for (EntityBareJid jRoomName : joinedRoomes) {

                Log.e("Group Chat : Joined room = " , jRoomName.toString());

            }
有人帮我吗


我还想为MUC组添加头像图像。我该怎么做?

没有命令可以获取帐户为member/admin/owner的房间列表。。。只有一个命令可以获取特定房间的从属关系列表

我还想为MUC组添加头像图像。我该怎么做


房间没有vcard,因此没有存储图像的位置。但它有一个描述字段,您可以在其中输入化身图像的URL,然后修改客户端以读取该URL并将图像显示为房间化身。

您可以尝试这种方式获取组成员和详细信息

 public static List<String> getRoomInfo(String grp_id) {
    List<String> jids = new ArrayList<>();
    try {


        EntityBareJid mucJid = JidCreate.entityBareFrom(grp_id + "@" + Constants.GRP_SERVICE);


        mucChatManager = MultiUserChatManager.getInstanceFor(MyApplication.connection);
        mucChat = mucChatManager.getMultiUserChat(mucJid);

        RoomInfo info = mucChatManager.getRoomInfo(mucJid);


        LogM.e("Number of occupants:" + info.getOccupantsCount());
        LogM.e("Room Subject:" + info.getSubject());

        Log.e(TAG, "members " + mucChat.getMembers().size());

        List<Affiliate> affiliatesMembers = mucChat.getMembers();


        Log.e(TAG, "members1 " + affiliatesMembers.size());
        for (Affiliate affiliate : affiliatesMembers) {
            Log.e(TAG, "members: Jid:" + affiliate.getJid()

            );
            if (affiliate.getJid() != null) {
                jids.add(affiliate.getJid().toString());
            }
        }
        return jids;

    } catch (SmackException.NoResponseException | XMPPException.XMPPErrorException | InterruptedException | XmppStringprepException e) {
        Log.e(TAG, "Group Error : " + e.getMessage());

    } catch (SmackException.NotConnectedException e) {
        Log.e(TAG, "Group Error2 : " + e.getMessage());

    }
    return jids;
}