Android xmpp MUC设置默认配置

标签 android xmpp smack asmack

我正在使用 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();
            }

最佳答案

我也遇到了同样的错误。在这里我修改了代码,它对我有用。 当我们调用任何 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();
    }

}

现在我可以毫无异常地成功提交表单了。希望这对您有用。

关于Android xmpp MUC设置默认配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16858233/

相关文章:

android - gps打开/关闭时如何触发广播接收器?

android - Fragment 中的 ListView 不显示

java - 如何使用订阅模式添加花名册 "both"

xmpp - 阻止用户进入 smack

android - 如何在微调器中按字母顺序对数据进行排序

javascript - 断开连接的客户端在带有 websockets 的 Openfire 服务器上保持在线

node.js - Node-XMPP 没用吗?选择 XMPP 服务器

java - 如何存储和重放 JDBC 语句?

android - 流管理中的死连接消息和送达回执接收延迟 - MongooseIM server 2.0.0

android - Eclipse Android SDK 管理器 - 缺少一些包