我已經能夠創建if語句來檢查字符串,並返回我創建的Toast消息,但它一直顯示每次我打開聊天時的敬酒信息。即使最近的消息不包含我正在查找的字符串,所以我假設它不檢查它是否是最後收到的消息,也不檢查它是否未讀。代碼如下。我試圖這樣做的原因是因爲我的父母共享一個Facebook帳戶,我想要一個簡單的方法來顯示,如果消息是簽署媽媽或爸爸。下面的代碼只有檢查媽媽一旦它的工作,我將添加檢查爸爸簽名。我正在使用開源消息客戶端Xabber。謝謝你的幫助。嘗試獲取Android Jabber應用程序以檢查新郵件中的字符串並返回Toast郵件
public void setVisibleChat(String account, String user) {
final boolean remove = !AccountManager.getInstance()
.getArchiveMode(account).saveLocally();
AbstractChat chat = getChat(account, user);
if (chat == null)
chat = createChat(account, user);
else {
// Mark messages as read and them delete from db if necessary.
final ArrayList<MessageItem> messageItems = new ArrayList<MessageItem>();
for (MessageItem messageItem : chat.getMessages()) {
if (!messageItem.isRead()) {
messageItem.markAsRead();
messageItems.add(messageItem);
}
if (chat.getLastText().contains("Mom") && (!messageItem.isRead()));{
Toast.makeText(Application.getInstance(), "Message from Mom!", Toast.LENGTH_SHORT).show();
}
}
Application.getInstance().runInBackground(new Runnable() {
@Override
public void run() {
Collection<Long> ids = getMessageIds(messageItems, remove);
if (remove)
MessageTable.getInstance().removeMessages(ids);
else
MessageTable.getInstance().markAsRead(ids);
}
});
}
visibleChat = chat;
}
嗨,我也試圖獲得相同的Android XABER中的MessageItem的讀狀態。但messageItem.isRead()總是返回true,即使接收者沒有打開消息。你可以建議我,如果你對這個問題有任何想法 – Raj
@Raj你應該發佈你的代碼,以便這個社區的人更好地理解什麼可能會出錯。前段時間我停止在這個項目中工作後,我的父母得到智能手機,他們設置個人FB賬戶,所以我沒有這個需要了。我相信當時我的工作幾乎完美,但沒有代碼了。發佈代碼,我會盡我所能來幫助你。 – user3561802
嗨,我作爲一個單獨的問題更新了代碼片段的確切問題。以下是網址。 http://stackoverflow.com/questions/29776948/issue-with-android-xabbar-message-read-status – Raj