XEP-0184: Message Delivery Receipts are useful, if you want to know if a message has been delivered to the recipient.
When you send a message, you ask for a receipt and the recipient should send a receipt, if it supports the protocol.
If you enable the MessageDeliverReceiptsManager
, your XMPP session automatically sends receipts, if they were
requested in a message.
MessageDeliveryReceiptsManager messageDeliveryReceiptsManager = xmppClient.getManager(MessageDeliveryReceiptsManager.class);
messageDeliveryReceiptsManager.setEnabled(true);
messageDeliveryReceiptsManager.addMessageDeliveredListener(e -> {
// Message with ID 'e.getMessageId()' has been received!
});
In order to request receipts, you need to enable the manager. Simply enabling it will request receipts for every
outbound non-error message. If you want to request receipts only for a messages, you can add a filter. The following
example would request receipts only for message of type normal
.
messageDeliveryReceiptsManager.setMessageFilter(message -> message.getType() == Message.Type.NORMAL);