我使用的是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) {
}
});