【问题标题】:Android xmpp MUC setting default configurationAndroid xmpp MUC设置默认配置
【发布时间】:2013-05-27 07:56:36
【问题描述】:

我正在使用 Xabber 开源项目并且能够创建一个新组,但它总是说:这个房间被锁定,无法进入,直到配置得到确认。我尝试设置默认配置,但它抛出异常:401 未授权。究竟是什么问题。

final MultiUserChat multiUserChat;
        try {
            multiUserChat = new MultiUserChat(xmppConnection, room);
            // CHANAKYA: set default config for the MUC
            // Send an empty room configuration form which indicates that we want
            // an instant room
            try {
                multiUserChat.sendConfigurationForm(new Form(Form.TYPE_SUBMIT));
            } catch (XMPPException e) {
                e.printStackTrace();
            }

【问题讨论】:

    标签: android xmpp smack asmack


    【解决方案1】:

    我也面临同样的错误。在这里,我修改了代码,它对我有用。 当我们调用任何getConfigurationForm()时,错误401不是授权错误,没有加入它。


    multiUserChat.join(nickname, password);
    setConfig(multiUserChat); // Here I am calling submit form
    

    private void setConfig(MultiUserChat multiUserChat) {
    
        try {
            Form form = multiUserChat.getConfigurationForm();
            Form submitForm = form.createAnswerForm();
            for (Iterator<FormField> fields = submitForm.getFields(); fields
                    .hasNext();) {
                FormField field = (FormField) fields.next();
                if (!FormField.Type.hidden.equals(field.getType())
                        && field.getVariable() != null) {
                    submitForm.setDefaultAnswer(field.getVariable());
                }
            }
            submitForm.setAnswer("muc#roomconfig_publicroom", true);
            submitForm.setAnswer("muc#roomconfig_persistentroom", true);
            multiUserChat.sendConfigurationForm(submitForm);
        } catch (Exception e) {
            e.printStackTrace();
        }
    
    }
    

    现在我可以毫无例外地成功提交表单了。希望这对你有用。

    【讨论】:

    • 嗨@u_pendra,你能告诉我我们如何更新组配置吗?
    【解决方案2】:

    您必须具有设置配置的权限。这通常可以在服务器设置中更改。例如,如果你有 Openfire,你应该去Group Chat>Group chat settings>点击你的群聊服务>Room Creation PermissionsAdministrators

    您可能无法更改此客户端,只有当您有权访问您尝试连接的服务器时才有可能。

    【讨论】:

    • 嗨 koesie 感谢您的回复,我尝试将房间创建权限更改给每个人,并且我将我的 jabber id 添加到管理员列表中。但是当我创建一个新组时,我仍然得到同样的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2016-08-30
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    相关资源
    最近更新 更多