0

如果有人可以帮助我如何使用 ASMACK 接收 iq 数据包,我将不胜感激,我正在发送原始 iq 数据包但无法接收,

我在建立连接之前以编程方式注册了 iq 数据包,但仍然没有得到响应,

     pm.addIQProvider("vCard", "vcard-temp", new VCardProvider());

  final IQ iq = new IQ() {
          public String getChildElementXML() {
            return "<iq from='test@XX.XX.XX.XX' id='v1'      to='test@XX.XX.XX.XX' type='get'><vCard xmlns='vcard-temp'/></iq>";
          }
        };

    iq.setType(IQ.Type.GET);
        connection.sendPacket(iq);
        connection.addPacketListener(new MyPacketListener(),new       PacketTypeFilter(IQ.class));    
4

2 回答 2

0

您可以实现 Packet Listner 方法,processPacket(Packet packet) 方法将为您提供传入的数据包。这是一个堆栈线程,它解释了相同的问题aSmack - Packet to XML using Packet Listener 输出可为空的元素

于 2013-08-13T10:10:58.620 回答
0

首先,在发送数据包之前尝试设置数据包侦听器。它是一个异步协议,并且有可能在您的侦听器设置为接收响应之前返回响应。

然后尝试设置 -DsmackDebugEnabled=true 以检查您的发送是否有实际响应。

于 2011-09-15T17:05:10.327 回答