Как получить список номеров MUC, в котором уже участвовал пользователь? - PullRequest
0 голосов
/ 01 октября 2018

Я использую MUC для группового чата, используя smack.я хочу получить список комнат MUC, пользователь которых уже участвовал, например, WhatsApp.

Используя код любимого, я получаю только комнаты, к которым присоединился пользователь, но мне нужно получить все группы, членами которых я уже стал.

Вот мой код:

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

            for (EntityBareJid jRoomName : joinedRoomes) {

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

            }

Кто-нибудь мне поможет?

Также я хочу добавить изображение аватара для группы MUC.как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Вы можете попробовать этот способ, чтобы получить членов группы и детали

 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;
}
0 голосов
/ 01 октября 2018

Нет команды, чтобы получить список комнат, в которых учетная запись является членом / администратором / владельцем ... Есть только команда, чтобы получить список филиалов определенной комнаты.

Также я хочу добавить аватар для группы MUC.как я могу это сделать?

В комнате нет vcard, поэтому в ней нет места для сохранения изображения.Но у него есть поле «Описание», в котором вы можете поместить URL-адрес изображения аватара, а затем изменить клиентов, чтобы они считывали этот URL-адрес и отображали изображение как аватар комнаты.

...