Запросы на получение доставки не работают для 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);
Тем не менее, клиент на принимающей стороне получает сообщение в порядке, но слушатель не срабатывает в системе отправителя. Что-то я пропускаю?