Reputation: 31
How we get Message Read/Seen Acknowledgement in smack or in XMPP from Android, 1. Single Tick Working(When User Send Message then server give Acknowledgement) 2. Double Tick Working (When Message Send to Receiver Device but receiver not Seen Message)
but when receiver Read/Seen Message how we send Acknowledgement to Sender?
Upvotes: 3
Views: 886
Reputation: 337
You have to use MessageEventManager. Instantiate it as
messageEventManager = MessageEventManager.getInstanceFor(connection);
At the SENDER side, send a seen/displayed event as
messageEventManager.sendDisplayedNotification(to, messageID);
where to
is JID to whom you have to send this event and messageID
is the id of the message for which you are sending this event.
Now at the RECEIVER side register a listner like below:
messageEventManager.addMessageEventNotificationListener(messageEventNotificationListener);
MessageEventNotificationListener messageEventNotificationListener = new MessageEventNotificationListener() {
@Override
public void deliveredNotification(Jid from, String packetID) {
}
@Override
public void displayedNotification(Jid from, String packetID) {
System.out.println("HERE packetID IS THE MESSAGE ID FOR WHICH YOU RECEIVED SEEN/DISPLAYED EVENT AND YOU CAN SET STATUS FOR THAT MESSAGE");
}
@Override
public void composingNotification(Jid from, String packetID) {
}
@Override
public void offlineNotification(Jid from, String packetID) {
}
@Override
public void cancelledNotification(Jid from, String packetID) {
}
};
Upvotes: 1
Reputation: 145
You can use MessageEventNotificationListener and MessageEventManager. 1) Every message start with single tick. 2) When message is delivered and receiving user sent delivered notification to sender. Sender side change from single tick to double tick 3) When receiving user read this message, this user sent displayed notifications to sender. Sender side change from double tick to blue double tick.Please review smack javadoc.
Upvotes: 1