2013-06-07 4 views
7

Mogę dodać grupę, ale pokazuje "Pokój jest zablokowany od wejścia, dopóki konfiguracja nie zostanie potwierdzona". Zbadałem, ale nie znalazłem zadowalającej odpowiedzi. Poniżej znajduje się kod jak uzyskać połączenie XMPP i przesłanie formularza. I podczas wysyłania formularza rzuca "Nieautoryzowany wyjątek".W XMPP uzyskanie wyjątku niedopuszczone (401), podczas przesyłania formularza

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

// Kod do przesłania formularza.

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

Problem został rozwiązany. Wywoływałem metodę setConfig() z niewłaściwego miejsca. To powinno być połączenie po dołączeniu do grupy. \t multiUserChat.join (pseudonim, hasło); // ustaw domyślną konfigurację dla pokoju: \t \t \t \t setDefaultConfig (multiUserChat); –

+1

Możesz odpowiedzieć na własne pytanie i zaakceptować je. :) – iStar

Odpowiedz

1

Aby uzyskać odpowiedź na to pytanie, dostosowuję komentarz.

Dzwonisz pod numer setConfig() wcześniej. Powinien zostać wywołany po dołączeniu do grupy.