Как принять приглашение в MUC? - PullRequest
       39

Как принять приглашение в MUC?

0 голосов
/ 19 сентября 2018

Я разрабатываю приложение чата с xmpp.Я создал группу с помощью MUC и отправил приглашение другому пользователю.но я не знаю, как принять и отклонить приглашение.

Вот мой код для отправки приглашения:

 EntityBareJid userInviteJID = JidCreate.entityBareFrom("user2@servicename");
 muc2.invite(userInviteJID, "Meet me in this excellent room");

Я пробовал MultiUserChat.decline(conn, room, inviter.asBareJid()s, "I'm busy right now"); метод внутри метода приглашения ReReved ().но проблема в том, что метод MultiUserChat.decline () выдает ошибку:

не может разрешить метод отклонения ()

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

Ответы [ 2 ]

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

вам нужно автоматически присоединиться при получении приглашения, вот код, пока соединение установлено.

 MultiUserChatManager.getInstanceFor(MyApplication.connection).addInvitationListener(new InvitationListener() {
        @Override
        public void invitationReceived(XMPPConnection conn, MultiUserChat room, EntityJid inviter, String reason, String password, Message message, MUCUser.Invite invitation) {
            //  Log.e(TAG, "invitationReceived() called with: conn = [" + conn + "], room = [" + room + "], inviter = [" + inviter + "], reason = [" + reason + "], password = [" + password + "], message = [" + message + "], invitation = [" + invitation + "]");
            LogM.e("invitationReceived() called with: conn = [" + conn + "], room = [" + room + "], inviter = [" + inviter + "], reason = [" + reason + "], password = [" + password + "], message = [" + message + "], invitation = [" + invitation + "]");

            try {
                Resourcepart nickname = null;
                try {
                    nickname = Resourcepart.from("MY_JID_HERE");
                } catch (XmppStringprepException e) {
                    e.printStackTrace();
                }

                try {

                    room.join(nickname); //while get invitation you need to join that room
                    room.getRoom().getLocalpart();
                } catch (SmackException.NoResponseException e) {
                    e.printStackTrace();
                } catch (SmackException.NotConnectedException e) {
                    e.printStackTrace();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } catch (MultiUserChatException.NotAMucServiceException e) {
                    e.printStackTrace();
                }

                Log.e(TAG, "join room successfully");

            } catch (XMPPException e) {
                e.printStackTrace();
                Log.e(TAG, "join room failed!");
            }

        }
    });
0 голосов
/ 19 сентября 2018

Я нашел ответ для отклонения приглашения.

Эта функция перемещена в MultiUserChatManager, она не имеет отношения к конкретному экземпляру MultiUserChat, поэтому она была статической и теперь является функцией менеджера..

MultiUserChatManager.getInstanceFor(connection).decline(roomJID,inviter.asEntityBareJid(),"reason");

Но что делать, чтобы принять приглашение?Кто-нибудь может ответить мне, пожалуйста?

...