Ich versuche, DeliveryReceipts zu verwenden, damit ich weiß, dass die Nachricht gesendet wurde. onReceiptReceived
wird jedoch nie aufgerufen. Ich habe folgendes getan:onReceiptReceivts wird nie behandelt für DelieveryReceipts
DeliveryReceiptManager deliveryReceiptManager = DeliveryReceiptManager.getInstanceFor(mClientConnection);
deliveryReceiptManager.autoAddDeliveryReceiptRequests();
DeliveryReceiptManager.setDefaultAutoReceiptMode(DeliveryReceiptManager.AutoReceiptMode.always);
deliveryReceiptManager.addReceiptReceivedListener(new ReceiptReceivedListener() {
@Override
public void onReceiptReceived(String fromJid, String toJid, String receiptId, Stanza receipt) {
log.log(Level.INFO, "OnReceiptReceived fromJid: " + fromJid + " toJid: " + toJid + " receiptId: " + receiptId);
}
});
die Nachricht gesendet:
ChatManager chatManager = ChatManager.getInstanceFor(mClientConnection);
Message msg = new Message(username, Message.Type.chat);
msg.setBody(message);
final String msgReceipt = DeliveryReceiptRequest.addTo(msg);
log.log(Level.INFO, "msgReceiptRequest: " + msgReceipt);
Chat chat = chatManager.createChat(username, mChatMessageListener);
chat.sendMessage(message);
vom Client senden
SENT (0): <message to='[email protected]' id='6xS4w-43' type='chat'><body>hello</body><thread>32091ad3-8da9-4758-9656-c06eb72532a2</thread><request xmlns='urn:xmpp:receipts'/></message>
Auf dem empfangenden Client
<message to='[email protected]' id='6xS4w-43' type='chat'><body>hello</body><thread>32091ad3-8da9-4758-9656-c06eb72532a2</thread><request xmlns='urn:xmpp:receipts'/></message>
onReceiptReceived
wird nie so behandelt, weiß ich nicht, wenn der empfangende Client die Nachricht erhalten
habe ich versucht, so etwas zu tun, wenn der Client die Nachricht empfängt, die ich dachte zurück zu senden, die die onReceiptReceived Ereignis auslösen könnte
chat.addMessageListener(new ChatMessageListener() {
@Override
public void processMessage(Chat chat, Message msg) {
if(!msg.getBody().isEmpty()) {
Message ms = new Message();
ms.addBody("EN", "delivered");
ms.setTo(msg.getFrom());
ms.setStanzaId(msg.getStanzaId());
DeliveryReceiptRequest.addTo(ms);
mClientConnection.sendStanza(ms);
}
log.log(Level.INFO, "receiveChatMessages Received prompted message: " + msg.getBody());
}
}
Vielen dank für Ihre Anregungen,
if (DeliveryReceiptManager.hasDeliveryReceiptRequest (Nachricht)) diese Bedingung auch in meinem Fall beim Empfang immer falsch ist nie erhalten ausgelöst wird .. alle Abhilfen ?? – Moulesh