在我的应用程序中,我想从中获取聊天记录XMPP SMACK
,为此我要发送 IQPacket stanza
请检查以下内容
public void getChatHistory() throws Exception{
if (connection.isAuthenticated()){
ChatHistoryIq iq = new ChatHistoryIq("query");
iq.setType(IQ.Type.set);
iq.setStanzaId(loginUser);
System.out.println("************************************** Iq is : "+iq);
/*New code*/
connection.sendIqWithResponseCallback(iq, new PacketListener() {
@Override
public void processPacket(Stanza packet) throws NotConnectedException {
CharSequence mCharSequence = (CharSequence) packet.toXML();
System.out.println("((((((((((((((((( : " + mCharSequence);
String xml=String.valueOf(mCharSequence);
loadRSSFromURL(xml);
}
});
//The listener for receiving all the packets from the peer device
connection.addPacketListener(new PacketListener() {
@Override
public void processPacket(Stanza packet) throws NotConnectedException {
Log.i("Send IQ with Response", "****** message From : " + packet.getFrom());
Log.i("Send IQ with Response", "****** message To : " + packet.getTo());
Log.i("XML is *****************************: ", String.valueOf(packet.toXML()));
}
}, new PacketFilter() {
@Override
public boolean accept(Stanza packet) {
Log.e("$$$$$$$$$$$$$$$$$$$$$$$$ CHAT HISTORY Packet Filter From : ", packet.getFrom());
Log.e("$$$$$$$$$$$$$$$$$$$$$$$$ CHAT HISTORY Packet Filter To : ", packet.getTo());
Log.i("$$$$$$$$$$$$$$$$$$$$$$$$ CHAT HISTORY Packet Filter XML: ", packet.toString());
String xml=String.valueOf(packet.toXML());
loadRSSFromURL(xml);
return true;
}
});
connection.sendPacket(iq);
//
} else{
Toast.makeText(context,"User Not Authenticate",Toast.LENGTH_LONG).show();
}
}
我从上面的代码中获取了 历史记录,但问题是,我们无法处理聊天记录,我们只能在我们的服务器上获取它LOGCAT
但无法处理它。意味着我们想要一些callback methods
处理聊天记录XMPP
。所以请帮助处理 XMPP 的聊天记录。
请查看获取 XMPP 响应的屏幕截图 ScreenShot