在我的数据包收听器中未收到数据包

问题描述:

我们正在使用asmack(当前版本为4.0.3)。直到二月份,我一直坚持使用该版本。关于SO和新的第一个问题,请耐心等待。 我正在用Android上的smack接收此数据包(显示在调试日志中)。在我的数据包收听器中未收到数据包

RCV(1):

< presence xmlns="jabber:client" 
from="[email protected]/d67d0529-cdb3-4842-872b-8968ad635194" to="[email protected]/d67d0529-cdb3-4842-872b-8968ad635194"> 
< x xmlns="http://jabber.org/protocol/muc#user"> 
< item affiliation="member" 
role="participant" 
name="my name" 
type="web" 
mute="false"> 
< /item> 
< status xmlns="http://jabber.org/protocol/muc" code="301"></status> 
< status xmlns="http://jabber.org/protocol/muc" code="110">< /status> 
< /x> 
< /presence> 

我的包过滤

PacketFilter presenceFilter = new AndFilter(new FromMatchesFilter(roomId + "@chat." + myUrl, true), new PacketTypeFilter(Presence.class)); 

    connectionXmpp.addPacketListener(myPacketListener, presenceFilter); 

我的包监听

private class myPacketListener implements PacketListener{ 
     @Override 
     public void processPacket(Packet packet) throws NotConnectedException { 
     Log.i(TAG," Packet to xml : "+packet.toXML()); 
    } 
} 

如何处理与它的所有内容的XML?我收到两个状态码,我需要解析它们。如何处理“x”标签中的所有数据?我的数据包侦听器返回一堆输出,但没有包含状态码301或静音属性。

谢谢大家

尝试添加以下代码processPacket方法得到packet细节。

@Override 
    public void processPacket(Packet packet) throws NotConnectedException 
{ 
    Log.i(TAG," Packet to xml : "+packet.toXML()); 
    //new code start 
     Message message = (Message) packet; 

      if (message.getType() == Message.Type.error) { 
       return; 
      } 
      if (message.getBody() != null) { 
Log.i("Message==>",message.getBody()); 
Log.i("Message From",message.getFrom()) 
      } 
    //new code end 
}