Не получает пакет в моем прослушивателе пакетов

Мы используем asmack (на данный момент версия 4.0.3). Я застрял с этой версией до февраля. Первый вопрос о SO и новый для шлепка, поэтому, пожалуйста, потерпите меня. Я получаю этот пакет с smack на Android (отображается в журнале отладки).

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 или свойство отключения звука.

Всем спасибо


person samory    schedule 17.10.2015    source источник


Ответы (1)


Попробуйте добавить приведенный ниже код в метод 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
}
person pRaNaY    schedule 25.11.2015