我已经在我的应用中集成了QuickBlox Android SDK,并且列表中有500多个对话框组,当我尝试加入任何组聊天室时,我没有进入onSuccess()
中的任何一个,和onError()
,控制流只通过使用以下代码绕过回调方法。
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);
}
}
我认为问题是组类型。
如果要创建一个任何人都可以加入的公共组,则应使用 qbdialogtype.public_group 。
如果 qbdialogtype.group 应在创建时添加参与者,只有这些参与者才能加入添加的组。
解决方案是使用类型 qbdialogtype.public_group 创建对话框。
QBChatDialog qbChatDialog=new QBChatDialog();
qbChatDialog.setType(QBDialogType.PUBLIC_GROUP);// For public group
qbChatDialog.setType(QBDialogType.GROUP);// For private group