据我所知,我已经掌握了这个接口:ReceiptReceivedListener,它位于smack 4.2
以下是我的实现方式:
private ReceiptReceivedListener receiptReceivedListener;
/**
* get DeliveryReceiptManager
*
* @return
*/
private DeliveryReceiptManager getDeliveryReceiptManager() {
if (deliveryReceiptManager == null && getConnection() != null) {
deliveryReceiptManager = DeliveryReceiptManager.getInstanceFor(getConnection());
}
return deliveryReceiptManager;
}
添加监听器
getDeliveryReceiptManager().addReceiptReceivedListener(receiptReceivedListener);
收到回电
receiptReceivedListener = new ReceiptReceivedListener() {
@Override
public void onReceiptReceived(Jid fromJid, Jid toJid, String receiptId, Stanza receipt) {
//TODO : on recieved status of message delivery
}
};
这肯定会帮助你
以下是 Smack 4.2 的界面以及完整的详细信息:
/**
* Callback invoked when a new receipt got received.
* <p>
* {@code receiptId} correspondents to the message ID, which can be obtained with
* {@link org.jivesoftware.smack.packet.Stanza#getStanzaId()}.
* </p>
*
* @param fromJid the jid that send this receipt
* @param toJid the jid which received this receipt
* @param receiptId the message ID of the stanza(/packet) which has been received and this receipt is for
* @param receipt the receipt
*/
void onReceiptReceived(Jid fromJid, Jid toJid, String receiptId, Stanza receipt);