私のアプリケーションでは、からチャット履歴を取得したいので、以下を確認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();
}
}
上記のコードから履歴を取得してい ますが、問題は、のチャット履歴を処理できないことです。これは、 のチャット履歴を処理する必要があることを意味します。XMPPのチャット履歴を処理するのを手伝ってください..
XMPP応答を取得するスクリーンショットを確認してくださいScreenShotLOGCAT
callback methods
XMPP