Член группы не упорствует в открытом огне с андроидом?

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

код :

код: создание идентификатора jabber

 private MultiUserChat getMultiUserChat("123456789"){
        MultiUserChatManager manager =  MultiUserChatManager.getInstanceFor(getXmppConnection());
        String jid = "[email protected]";
        return manager.getMultiUserChat(jid);
    }

код: создание и присоединение к комнате

public void createReservedRoom(Context context, String jidName, String roomName, String nickName){

        try {
            connect();

            MultiUserChat muc =  getMultiUserChat(jidName);
            muc.create(nickName);
            try {
                //PreferenceUtils.setObject(context, muc, PreferenceUtils.MUC_OBJ);
            }catch (Exception e){
                e.printStackTrace();
            }
            Form form = getForm(muc, roomName);

            // Send the completed form
            muc.sendConfigurationForm(form);

            muc.join(nickName);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

код: создать комнату

private Form getForm(MultiUserChat muc, String roomName){
        Form form = null;
        try {
            form = muc.getConfigurationForm().createAnswerForm();

            // Create a new form to submit based on the original form
            form.setAnswer("muc#roomconfig_passwordprotectedroom", false);
            form.setAnswer("muc#roomconfig_roomname", roomName);
            form.setAnswer("muc#roomconfig_persistentroom", true);
            form.setAnswer("muc#roomconfig_changesubject", true);
            form.setAnswer("muc#roomconfig_publicroom",true);
            form.setAnswer("muc#roomconfig_allowinvites",true);
            form.setAnswer("muc#roomconfig_membersonly",true);
            form.setAnswer("muc#roomconfig_moderatedroom",false);

            // Sets the new owner of the room
            List<String> owners = new ArrayList<String>();

            //Be carefull: if members does not exists, it brakes!

            owners.add("[email protected]");
            form.setAnswer("muc#roomconfig_roomowners", owners);
        } catch (SmackException.NoResponseException e) {
            e.printStackTrace();
        } catch (XMPPException.XMPPErrorException e) {
            e.printStackTrace();
        } catch (NotConnectedException e) {
            e.printStackTrace();
        }

        return form;
    }

person Sumesh B    schedule 11.01.2017    source источник


Ответы (1)


Групповой чат не поддерживает «членов».

В групповом чате могут быть участники (люди, фактически присоединившиеся к сеансу в групповом чате) и аффилированные лица, пользователи с определенной ролью (владелец, администратор, участник и изгой).

Быть «членом» в основном означает, что вы не являетесь модератором (администратором) чата. Но я думаю, что вы в основном хотите, чтобы каждый человек, которого вы добавляете, автоматически присоединялся к данному групповому чату в следующих сеансах, поэтому ваши пользователи должны ПОДПИСАТЬСЯ на групповой чат.

Если вы также хотите, чтобы в групповом чате были люди, похожие на WhatsApp, вы можете смоделировать, предоставив всем принадлежность «admin» или получив все подписки на данный групповой чат. Это большая тема...

person MrPk    schedule 11.01.2017
comment
xmpp.org/extensions/xep-0045.html. Как только я более или менее ответил, как взломать Affiliations, чтобы иметь постоянный список участников (конечно, вы потеряете некоторые из собственных функций Affiliations) stackoverflow.com/questions/37431642/, и вы также можете посмотреть stackoverflow.com/questions/37524493/ (не забудьте проголосовать, если что-то поможет!) -> Документы SMACK: download.igniterealtime.org/smack/docs/latest/documentation/ - person MrPk; 12.01.2017
comment
НЕПРАВИЛЬНО, участники muc поддерживают комнату только для участников, дело в том, что вы путаете то, что участник может делать автоматически, например WhatsApp. - person MiguelHincapieC; 07.09.2018
comment
Я предлагаю прочитать полный ответ, то, что вы говорите, правильно, но я уже объяснил в следующих строках в прошлом году;) - person MrPk; 10.09.2018