2016-12-31 70 views
1

我正在使用quickblox android sdk作爲羣聊應用程序,並且它工作得非常好,除非事實上我無法接收推送通知,如果在離線時發送消息。所以我決定查詢未讀的郵件數量,但從服務器獲取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

我已經完成了這項工作,請檢查您是否可以幫助我解決問題,我已經上了一個星期了。 –