2013-05-31 80 views
7

我正在使用Xabber开源项目并且能够创建一个新组,但它总是说:这个房间被锁定,直到配置被确认。我试图设置一个默认配置,但它引发了我的异常:401未经授权。到底什么是问题。Android xmpp MUC设置默认配置

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(); 
      } 

回答

7

我也遇到了同样的错误。在这里我修改了代码,它适用于我。 错误401在我们调用任何getConfigurationForm()时未授权错误,但未加入它。


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(); 
    } 

} 

现在我能够成功提交该表格没有任何异常。希望这会对你有用。

+0

嗨@u_pendra,你能告诉我如何更新组配置吗? –

0

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

您可能是无法来改变这个客户端,只有当您有权访问您尝试连接的服务器时才有可能。

+0

您好koesie感谢您的答复,我试着改变房间创建权限给每个人,并且我还将我的jabber ID添加到Aminstrators列表中。但是,当我创建一个新的组时,我得到了同样的错误。 – sukarno