Количество не прочитанных сообщений в quickblox
Я использую QuickBlox Android SDK для приложения группового чата, и он работает отлично, за исключением того, что я не могу получить push-уведомление, если сообщение отправлено, когда я был в автономном режиме. Поэтому я решил запросить количество непрочитанных сообщений, но получаю 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
, А также вместо getDialogMessages ()
вам нужно использовать getTotalUnreadMessagesCount()
следующим образом:
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) { }
});