2013-06-07 12 views
7

グループを追加することはできますが、「設定が確定するまで入力はロックされています」というメッセージが表示されます。私は研究しましたが、満足のいく回答は見つかりませんでした。以下は、XMPP接続を取得してフォームを送信するコードです。フォームを送信しているときに、「許可されていない例外」がスローされます。フォームを送信中にXMPPで例外が許可されません(401)。

xmppConnection = connectionThread.getXMPPConnection(); 
    if (xmppConnection == null) { 
     Application.getInstance().onError(R.string.NOT_CONNECTED); 
     return; 
    } 
    final MultiUserChat multiUserChat; 
    try { 

     multiUserChat = new MultiUserChat(xmppConnection, room); 
    // setConfig(multiUserChat); 

    } catch (IllegalStateException e) { 
     Application.getInstance().onError(R.string.NOT_CONNECTED); 
     return; 
    } 

//フォームを送信するためのコード。

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

} 
+2

問題が解決しました。私は間違った場所からsetConfig()メソッドを呼び出していました。グループに参加した後に電話する必要があります。 \t multiUserChat.join(ニックネーム、パスワード); //ルームのデフォルト設定を設定する \t \t \t \t \t setDefaultConfig(multiUserChat); –

+1

あなた自身の質問に答えてそれを受け入れることができます。 :) – iStar

答えて

1

この質問に回答するには、私はあなたのコメントに合っています。

早急にsetConfig()に電話しています。グループに参加した後に呼び出される必要があります。

関連する問題