在 quickblox 中未收到未读消息计数
Posted
技术标签:
【中文标题】在 quickblox 中未收到未读消息计数【英文标题】:Not receiving unread messages count in quickblox 【发布时间】:2016-12-31 08:59:55 【问题描述】:我正在将 quickblox android sdk 用于群聊应用程序,它运行良好,但如果在我离线时发送消息,我将无法接收推送通知。所以我决定查询未读消息计数,但我从服务器收到0
。我不知道我必须做些什么才能让用户在用户不在线时能够收到通知的群聊对话框。
这是我用来查询未读消息的代码:
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();
);
【问题讨论】:
【参考方案1】:第一部分是正确的:
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)
);
【讨论】:
=对不起,我发布了错误的代码,我使用了QBRestChatService.getTotalUnreadMessagesCount
,它返回了0
,即使我使用另一个用户的帐户向群聊发送了几条消息
然后编辑您的问题
我已经做到了,请检查您是否可以帮助我解决问题,我已经做了一个星期了。
现在看来是正确的。我看到的唯一原因是您可能没有退出聊天,因此计数器将始终为零。每次您的应用程序进入后台时,请尝试注销。当你在前台时再次登录
如果用户离线或蜂窝数据丢失连接,我将如何无法注销。你认为我能得到你的联系方式吗,我需要一个可以为我回答关于 quickblox 的问题的人。我是 api 新手,我真的迷失了。以上是关于在 quickblox 中未收到未读消息计数的主要内容,如果未能解决你的问题,请参考以下文章
Twilio 可编程聊天 — 使应用程序徽章与未读消息计数保持同步