2016-12-31 3 views
1

Я использую quickblox android sdk для приложения groupchat, и он отлично работает, за исключением того факта, что я не могу получить push-уведомление, если сообщение отправлено, когда я был в автономном режиме. Поэтому я решил запросить количество непрочитанных сообщений, но я получаю 0 с сервера. Я не знаю, что мне нужно сделать, чтобы получить диалог группового общения, чтобы пользователь мог получать уведомления, когда пользователь не был в сети.Не получать непрочитанные сообщения в quickblox

Это код, который я использовал для выполнения запросов непрочитанных сообщений:

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) { } 
}); 
+0

= жаль, что я отправил неверный код, я использовал 'QBRestChatService.getTotalUnreadMessagesCount' и он вернулся '0', даже если я послал пару сообщений в группучат с использованием учетной записи другого пользователя –

+0

Редактировать свой вопрос – GVillani82

+0

Я сделал это, пожалуйста, проверьте, можете ли вы помочь мне решить проблему, я был на ней уже неделю. –

Смежные вопросы