2013-05-31 108 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