我正在尝试设置XMPP聊天应用程序.现在我可以在gmail和gmail之间发送消息.我想要键入通知,例如用户键入的内容或用户正在键入,,,就像那样.我正在使用主类和Message侦听器类.
主类
public class XMPPChatDemoActivity extends Activity {
//Object of Custom class
MessageListener messageListener = new MessageListenerImpl();
private void setConnection(XMPPConnection connection) {
this.connection = connection;
ChatManager chatmanager = connection.getChatManager();
Chat newChat = chatmanager.createChat("user@gmail.com", messageListener);
try {
newChat.sendMessage("Howdy!");
}
catch (XMPPException e) {
System.out.println("Error Delivering block");
}
Run Code Online (Sandbox Code Playgroud)
消息监听器类
public class MessageListenerImpl implements MessageListener , ChatStateListener{
@Override
public void stateChanged(Chat arg0, ChatState arg1) {
// TODO Auto-generated method stub
}
@Override
public void processMessage(Chat arg0, Message arg1) { …Run Code Online (Sandbox Code Playgroud) 实施嫌API现在试图让喜欢的用户是否是聊天状态Composing,Paused等等.我迄今所做
public class IncomingChatListener implements ChatMessageListener, ChatStateListener {
@Override
public void stateChanged(Chat chat, ChatState state) {
Log.d("-----","into chat state");
if (ChatState.composing.equals(state)) {
Log.d("Chat State",chat.getParticipant() + " is typing..");
} else if (ChatState.gone.equals(state)) {
Log.d("Chat State",chat.getParticipant() + " has left the conversation.");
} else {
Log.d("Chat State",chat.getParticipant() + ": " + state.name());
}
}
public void processMessage(Chat chat, Message message) {
.......
......
}
Run Code Online (Sandbox Code Playgroud)
当用户输入时,我发送的状态如下:
ChatStateManager.getInstance(connection).setCurrentState(ChatState.composing, myChat);
Run Code Online (Sandbox Code Playgroud)
问题是stateChanged函数永远不会被调用而是函数中收到了像编写等的chatStatus包processMessage.
我怎么能在stateChanged功能上收到它?