【问题标题】:How do we retrieve all messages for a dialog without marking them as read in Android QuickBlox SDK?我们如何在 Android QuickBlox SDK 中检索对话框的所有消息而不将它们标记为已读?
【发布时间】:2015-12-01 10:23:56
【问题描述】:

我正在使用 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());

有什么方法可以实现吗?还是我错过了什么?

【问题讨论】:

    标签: android quickblox quickblox-android


    【解决方案1】:

    这样管理的正确方法:

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

    其他参数

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

    【讨论】:

      【解决方案2】:

      使用方法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) {
      
                      }
                  });
      

      【讨论】:

        猜你喜欢
        • 2015-03-26
        • 1970-01-01
        • 2016-09-12
        • 2015-06-06
        • 2014-10-26
        • 1970-01-01
        • 2022-01-16
        • 2020-07-30
        • 2010-12-29
        相关资源
        最近更新 更多