1

在我的应用程序中,我想从中获取聊天记录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

4

0 回答 0