Android – Smack的存在和“打字”function无法正常工作

我在Android应用程序中使用Smack库v4.1.0(不是aSmack)作为聊天function。 我似乎无法得到以下两个function工作:

  1. 用户存在(在线,上次查看)
  2. 聊天消息状态(发送,发送,阅读)

对于用户存在,我使用下面的代码总是返回null

 Presence userPresence = roster.getPresence(toUser); System.out.println("*** User status: " + userPresence.getStatus()); if (userPresence.getMode() == Presence.Mode.available || userPresence.getMode() == Presence.Mode.chat) { lblIsTyping.setText("Online"); } else { lblIsTyping.setText("Offline"); } 

对于消息状态,我使用以下代码:

 private class MessageListenerImpl implements MessageListener, ChatStateListener { @Override public void processMessage(Chat chat, Message message) { processMessageCore(message); } @Override public void stateChanged(Chat chat, ChatState chatState) { System.out.println("*** chat: " + chat.toString()); if (ChatState.composing.equals(chatState)) { lblIsTyping.setText("typing..."); System.out.println("Chat State: " + chat.getParticipant() + " is typing.."); } } @Override public void processMessage(Message message) { processMessageCore(message); } } 

并将其用作:

ChatManager.getInstanceFor(HCSmackService.getInstance().getConnection()).createChat(toUser, mThreadID, new MessageListenerImpl());

但callback不会被调用。

如何让这些新的Smack图书馆在Android上工作? 有没有人已经实现了这些function?

谢谢!

Solutions Collecting From Web of "Android – Smack的存在和“打字”function无法正常工作"