Запросы на получение доставки не работают для XMPP Android (aSmack)

Я использую OpenFire с aSmack.

Кажется, я не могу заставить работать DeliveryReceipts.

Я делаю следующее при создании соединения:

//create connection
connection.login(username, password);
DeliveryReceiptManager.getInstanceFor(connection).enableAutoReceipts();
DeliveryReceiptManager.getInstanceFor(connection).addReceiptReceivedListener(new ReceiptReceivedListener()
{
        @Override
        public void onReceiptReceived(String arg0, String arg1, String arg2)
        {
            Log.v("app", arg0 + ", " + arg1 + ", " + arg2);
        }
});

Я отправляю сообщение другому пользователю, используя:

//send chat
Message msg = new Message(id, Message.Type.chat);
msg.setBody(chat);
DeliveryReceiptManager.addDeliveryReceiptRequest(msg);
connection.sendPacket(msg);

Вышеуказанное не работает, хотя сообщение отправляется с ReceiptRequest. Слушатель не увольняется на конце отправителя, хотя получатель получает сообщение. (Я подтвердил это отладкой того, что DeliveryReceiptRequest действительно прикрепляется к отправляемому сообщению).

Я также попытался вручную отправить квитанцию, используя следующую команду в моем PacketListener with (MessageTypeFilter (Message.Type.chat)):

Packet received = new Message();
received.addExtension(new DeliveryReceipt(packet.getPacketID()));
received.setTo(packet.getFrom());
getConnection().sendPacket(received);

Тем не менее, клиент на принимающей стороне получает сообщение в порядке, но слушатель не срабатывает в системе отправителя. Что-то я пропускаю?

Ответы на вопрос(0)

Ваш ответ на вопрос