2017-12-25 6 views
-2

Ich habe QuickBlox Android SDK in meiner App integriert und es gibt mehr als 500 Dialoge Gruppe in der Liste und wenn ich versuche, einen Gruppenchat Raum beizutreten, werde ich nicht in beide eingegeben onSuccess() und onError(), geht der Kontrollfluss nur unter Umgehung der Callback-Methoden, indem er den folgenden Code verwendet.Quickblox-android beitreten Chat-Gruppe funktioniert nicht

qbChatDialog.initForChat(QBChatService.getInstance()); 
    qbChatDialog.addMessageListener(chatMessageListener); 

    DiscussionHistory discussionHistory = new DiscussionHistory(); 
    discussionHistory.setMaxStanzas(0); 

    if (!qbChatDialog.isJoined()) { 
     qbChatDialog.join(discussionHistory, new QBEntityCallback() { 
      @Override 
      public void onSuccess(Object o, Bundle bundle) { 
       if (qbChatDialog != null) { 
        getMessage(qbChatDialog, false); 
       } 
      } 

      @Override 
      public void onError(QBResponseException e) { 
       Log.e("QB Join", e.toString()); 
       Toast.makeText(QBChatActivity.this, "" + e.toString(), Toast.LENGTH_LONG).show(); 

      } 
     }); 
    } else { 
     if (qbChatDialog != null) { 
      getMessage(qbChatDialog, false); 
     } 
    } 
+0

Sind Sie sicher, dass alle Ihre Dialoge vom Typ 'QBDialogType.PUBLIC_GROUP' sind? – ADM

+0

der Typ ist QBDialogType.GROUP –

Antwort

0

Ich denke, das Problem ist Gruppentyp.
Wenn Sie eine öffentliche Gruppe erstellen möchten, der jeder beitreten kann, sollten Sie mit QBDialogType.PUBLIC_GROUP erstellen.

Bei QBDialogType.GROUP Teilnehmer sollten zum Zeitpunkt der Erstellung hinzugefügt werden und nur die Teilnehmer können der Gruppe beitreten, die hinzugefügt wurde.

Lösung ist erstellen Sie Ihren Dialog mit Typ QBDialogType.PUBLIC_GROUP, wenn Sie es öffentlich machen möchten.

QBChatDialog qbChatDialog=new QBChatDialog(); 
qbChatDialog.setType(QBDialogType.PUBLIC_GROUP);// For public group 
qbChatDialog.setType(QBDialogType.GROUP);// For private group 
+0

aber ich bin bereits Teilnehmer in Gruppentyp. –

+0

Haben Sie den aktuellen Benutzer zum Zeitpunkt der Erstellung zur Gruppe hinzugefügt? oder als Teilnehmer später vom Ersteller hinzufügen? Versuchen Sie, getOccupants() im Dialog zu debuggen und sehen Sie, ob Ihre ID in der Liste ist oder nicht. – ADM

+0

Benutzer während der Erstellung hinzufügen, lassen Sie mich klar, ich habe um mehr als 500 Dialoggruppenliste und wenn ich versuche, in einer Gruppe beizutreten dann ruft Callback nie, und es wenn in endlose laden. und ja ich bin in der Insassenliste –