2

我正在使用 ASMACK 开发一个聊天应用程序。我能够连接并发送私人聊天消息。但是,当尝试创建聊天室时,我收到错误:

       item-not-found(404)

这是我正在使用的代码:

         setConnection(connection);
           if(connection != null)
           {
               try
        {
                // SmackAndroid.init(this);  
              MultiUserChat muc=new MultiUserChat(connection,"chat1@groupchat.google.com");
              muc.create("greatandroid");
              Log.d("Chat Room Created","Successfully Created Chat Room");
              Form form = muc.getConfigurationForm();
              Form submitForm = form.createAnswerForm();
              for (Iterator fields = form.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);
                      muc.sendConfigurationForm(submitForm);
                      Log.d("Config Form Created","Successfully Configured Chat Form");
                  }
              }     

                }
                catch(Exception ex)
                {Log.d("Error Creating Chat Room",ex.getMessage().toString());}}

我该如何解决这个问题?

4

1 回答 1

0

使用此代码

// Get the the room's configuration form
            Form form = muc.getConfigurationForm();
            // Create a new form to submit
            // based on the original form
            Form submitForm = form.createAnswerForm();
            // Add default answers to the form
            // to submit
            for (Iterator fields = form.getFields(); fields.hasNext();) {
                FormField field = (FormField) fields.next();
                if (!FormField.TYPE_HIDDEN.equals(field.getType())
                        && field.getVariable() != null) {
                    // Sets the default value as
                    // the answer
                    //

                    submitForm.setDefaultAnswer(field.getVariable());
                }
            }


            submitForm.setAnswer("muc#roomconfig_roomdesc", GroupName);
            submitForm.setAnswer("muc#roomconfig_publicroom", false); //
            submitForm.setAnswer("muc#roomconfig_persistentroom", true);
            //
            submitForm.setAnswer("muc#roomconfig_membersonly", false);
            //
            submitForm.setAnswer("muc#roomconfig_allowinvites", true);
            // JID
            // submitForm.setAnswer("muc#roomconfig_whois", "anyone");
            //
            submitForm.setAnswer("muc#roomconfig_enablelogging", true);
            //
            // submitForm.setAnswer("x-muc#roomconfig_reservednick", true);
            //
            // submitForm.setAnswer("x-muc#roomconfig_canchangenick",
            // false);
            //
            // submitForm.setAnswer("x-muc#roomconfig_registration", false);
            // Send the completed form (with default values) to the
            // server to configure the room
            muc.sendConfigurationForm(submitForm);
于 2014-11-02T13:59:33.270 回答