未接收未读消息以QuickBlox计数



我正在使用QuickBlox Android SDK用于GroupChat应用程序,并且它的工作正常很好,除了我离线时我无法收到推送通知。因此,我决定查询未读消息的数量,但正在从服务器中获取0。我不知道我需要做些什么才能获取GroupChat对话框,以便用户在用户不在线时能够接收通知。

这是我用于查询未读消息的代码:

Set<String> dialogIds = new HashSet<String>();
String groupChatId = groupChat.getDialogId();
System.out.println("GroupChat Id: "+groupChatId);
dialogIds.add(groupChatId);  
QBChatDialog chatDialog = new QBChatDialog(groupChatId);
QBMessageGetBuilder messageGetBuilder = new QBMessageGetBuilder();
messageGetBuilder.setLimit(500);
messageGetBuilder.sortDesc("date_sent");
QBRestChatService.getTotalUnreadMessagesCount(dialogsIds).performAsync(new QBEntityCallback<Integer>() {
@Override
public void onSuccess(Integer total, Bundle params) {
    Log.i(TAG, "total unread messages: " + total);
    // if you have more then one dialog you can get each value with params.getInt(dialog_id)
}
@Override
public void onError(QBResponseException e) { 
    e.printStackTrace();
}
});

第一部分是正确的:

Set<String> dialogIds = new HashSet<String>();
String groupChatId = groupChat.getDialogId();
dialogsIds.add(groupChatId);

但是,之后您不使用dialogIds。而且,您需要使用getTotalUnreadMessagesCount()代替getDialogMessages ()如下:

QBRestChatService.getTotalUnreadMessagesCount(dialogIds).performAsync(new QBEntityCallback<Integer>() {
    @Override
    public void onSuccess(Integer total, Bundle params) {
        Log.i(TAG, "totat messages: " + total);
        // if you have more then one dialog you can get each value with params.getInt(dialog_id)
    }
    @Override
    public void onError(QBResponseException e) { }
});

相关内容

  • 没有找到相关文章

最新更新