如何在纽约接受邀请?

Posted

技术标签:

【中文标题】如何在纽约接受邀请?【英文标题】:How to accept invitation in MUC? 【发布时间】:2018-09-19 12:34:51 【问题描述】:

我正在使用 xmpp 开发聊天应用程序。我已经使用 MUC 创建了组并向其他用户发送了邀请。但我不知道如何接受和拒绝邀请。

这是我发送邀请的代码:

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

我在invitationReceived() 方法中尝试了MultiUserChat.decline(conn, room, inviter.asBareJid()s, "I'm busy right now"); 方法。但问题是 MultiUserChat.decline() 方法给出错误:

无法解析方法deploy()

谁能帮帮我?

【问题讨论】:

【参考方案1】:

您需要在收到邀请时自动加入,这是连接完成时的代码。

 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!");
            

        
    );

【讨论】:

【参考方案2】:

我找到了拒绝邀请的答案。

此函数已移至 MultiUserChatManager,它与 MultiUserChat 的特定实例无关,因此它是静态的,现在是管理器的函数。

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

但是如何接受邀请呢?谁能回答我好吗?

【讨论】:

您需要编辑您的问题而不是给出答案。

以上是关于如何在纽约接受邀请?的主要内容,如果未能解决你的问题,请参考以下文章

EKEvent接受邀请

此 Apple ID 已接受此应用的邀请

接受与 Apple ID 不同的电子邮件地址的 TestFlight 邀请?

Microsoft 365 - 如何修改User的Time Zone

如何检测 Multipeer Connectivity 邀请的拒绝?

Android 使用 xmpp 接受群聊邀请