在我的数据包收听器中未收到数据包
问题描述:
我们正在使用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
}