在 Android QuickBlox SDK 中,我们如何检索对话的所有消息而不将它们标记为已读?

How do we retrieve all messages for a dialog without marking them as read in Android QuickBlox SDK?

我正在使用 QuickBlox Android SDK。

在获取对话的所有消息时,我不想将消息标记为已读。我试过这种方式,但它不起作用。

QBRequestGetBuilder customObjectRequestBuilder = new QBRequestGetBuilder();
HashMap<String,Object> map = new HashMap<>();
map.put("mark_as_read",1);
customObjectRequestBuilder.fillParametersMap(map);
ArrayList<QBChatMessage> messages = QBChatService.getDialogMessages(dialog, customObjectRequestBuilder, new Bundle());

有什么办法可以实现吗?还是我遗漏了什么?

这样管理的正确方法:

QBRequestGetBuilder customObjectRequestBuilder = new QBRequestGetBuilder();
customObjectRequestBuilder.addRule("mark_as_read", "", 0);

另一个参数

ArrayList<QBChatMessage> messages = QBChatService.getDialogMessages(dialog, customObjectRequestBuilder, new Bundle());

使用方法 markMessagesAsRead。 如果您只需要将许多消息标记为已读。可以将所有消息标记为已读 - 只是不要传递 messagesIDs (messagesIDs = null)。

StringifyArrayList<String> messagesIDs = "ids";
QBChatService.markMessagesAsRead(dialogId, messagesIDs, new QBEntityCallback<Void>() {
                @Override
                public void onSuccess(Void result, Bundle params) {

                }

                @Override
                public void onError(QBResponseException responseException) {

                }
            });