在发送消息时附加 DeliveryReceiptRequest.addTo(msg);
就像这样
Message msg = new Message(oppositeUserId, Message.Type.chat);
msg.setBody(mMessageBody);
msg.setStanzaId(messageId);
msg.setFrom(loginUserId);
DeliveryReceiptRequest.addTo(msg);
mXMPPTCPConnection.sendStanza(msg);
XmppDeliveryReceiptManager.java
public class XmppDeliveryReceiptManager implements ReceiptReceivedListener {
private static final String TAG = XmppDeliveryReceiptManager.class.getSimpleName();
Context mContext;
public XmppDeliveryReceiptManager(Context mContext) {
this.mContext = mContext;
Log.d(TAG, "XmppDeliveryReceiptManager : initialized ");
}
@Override
public void onReceiptReceived(String fromJid, String toJid, String receiptId, Stanza receipt) {
Log.d(TAG, "onReceiptReceived : receiptId = " + receiptId);
}
}
将此添加到您的XMPP配置中。
ProviderManager.addExtensionProvider(DeliveryReceipt.ELEMENT,
DeliveryReceipt.NAMESPACE, new DeliveryReceipt.Provider());
ProviderManager.addExtensionProvider(DeliveryReceiptRequest.ELEMENT,
new DeliveryReceiptRequest().getNamespace(), new DeliveryReceiptRequest.Provider());
mXmppDeliveryReceiptManager = new XmppDeliveryReceiptManager(mContext);
mDeliveryReceiptManager = DeliveryReceiptManager.getInstanceFor(mXMPPTCPConnection);
mDeliveryReceiptManager.setAutoReceiptMode(DeliveryReceiptManager.AutoReceiptMode.always);
mDeliveryReceiptManager.addReceiptReceivedListener(mXmppDeliveryReceiptManager);
DeliveryReceiptManager.getInstanceFor(connection).enableAutoReceipts();
- Maddy