我无法接收XMPP消息,我使用以下代码:
Message mess = new Message() {
@Override
public String toXML() {
return "<message to='user@50.17.86.32' id='message22'><body>Great Mesg</body><x xmlns='jabber:x:event'><offline/><delivered/><composing/></x></message>";
}
};
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
connection.sendPacket(mess);
connection.addPacketListener(new PacketListener() {
public void processPacket(Packet packet) {
Message message = (Message) packet;
Log.d("Recv", "Message: " + message.toXML());
}
}, filter);
基本上我使用补丁版本的SMACK为android....并尝试使用xep 0022获取消息状态。
我认为你的过滤器是你的问题的原因。如果您的传入消息没有定义type='chat'属性,那么它们的类型将是Message.Type.normal。当然,我只是猜测,因为您没有发布传入消息,但是您发送的消息没有包含类型。
您可能只想创建一个ChatManagerListener并将其注册到ChatManager。这将处理这种情况。
注意:你知道XEP-0022已经过时了吧?