SMACK Message Listener для XEP-0022 не вызывается - PullRequest
1 голос
/ 21 сентября 2011

Я не могу получать сообщения XMPP, я использую следующий код:

    Message mess = new Message() {
           @Override
           public String toXML() {
           return "<message to='user@50.17.86.32' id='message22'><body>Great    Mesg</body><x xmlns='jabber:x:event'><offline/><delivered/><composing/></x></message>";
          }
    };


    PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
    connection.sendPacket(mess);
    connection.addPacketListener(new PacketListener() {
            public void processPacket(Packet packet) {
              Message message = (Message) packet;
              Log.d("Recv", "Message: " + message.toXML());
          }
    }, filter);

В основном я использую исправленную версию SMACK для Android .... и пытаюсь получить состояния сообщений с помощью xep 0022.

1 Ответ

1 голос
/ 21 сентября 2011

Я думаю, что ваш фильтр является причиной вашей проблемы.Если ваши входящие сообщения не имеют атрибут type = 'chat', они будут иметь тип Message.Type.normal.Я только догадываюсь, конечно, так как вы не опубликовали входящее сообщение, но отправляемое вами сообщение не содержит тип.

Вы можете просто создать ChatManagerListener и зарегистрировать его в ChatManager.Это будет обрабатывать этот случай.

Примечание: Вы знаете, что XEP-0022 устарел, верно?

...