Smack 4.2.0 OutgoingChatMessageListener没有得到任何呼叫
问题描述:
我使用的是smack 4.2.0最新版本,这里的IncomingChatMessageListener
工作正常,但是当我发送消息时OutgoingChatMessageListener
没有被调用。任何人都可以告诉我这是什么问题? 我的代码是低于Smack 4.2.0 OutgoingChatMessageListener没有得到任何呼叫
ChatManager chatManager = ChatManager.getInstanceFor(mXMPPConn);
EntityBareJid jid = JidCreate.entityBareFrom(mStrJabberID);
Chat chat = chatManager.chatWith(jid);
chatManager.addOutgoingListener(new OutgoingChatMessageListener() {
@Override
public void newOutgoingMessage(EntityBareJid to, Message message, Chat chat)
{
System.out.format("OUTGOING: %s.\n", message);
}
});
chat.send(strMsg);
答
我正在调试到smack的源代码。你可以尝试以下方法:
-
集FromMode.USER的连接发送消息
message.setType(org.jivesoftware.smack.packet.Message.Type.chat);
前
connection.setFromMode(XMPPConnection.FromMode.USER);
一套消息类型说明:
AbstractJidTypeFilter
检查从消息的jid
已满或裸露。连接将设置从节的jid
,默认是null
。 (AbstractXMPPConnection.java#sendStanza
,行666)MessageTypeFilter
将检查消息的类型是聊天还是正常。
答
我追溯了代码,发现在这个版本中有AbstractJidTypeFilter.class
的bug。
改变从啪4.2.0您的版本嫌4.2.2应该工作。
希望它可以解决您的问题。
奇怪的是,尝试启用日志 –
我也有同样的问题,让我知道如果你找出问题。 – rigal
相同的问题..请帮助,如果你找到解决方案...... :( – iMDroid