我们如何获得消息读取/看到确认发送器在smack或xmpp从android

时间:2017-11-16 13:40:12

标签: android xmpp

我们如何从Android获取消息读取/在smack或XMPP中查看确认, 1.单击工作(当用户发送消息然后服务器给出确认) 2.双勾选工作(当消息发送到接收器设备但接收器未看到消息时)

但是当接收方读/看消息我们如何向发送方发送确认信息?

2 个答案:

答案 0 :(得分:1)

您可以使用MessageEventNotificationListener和MessageEventManager。 1)每条消息都以单一勾号开头。 2)当邮件被传递并且接收用户向发送者发送了已发送的通知。发送方从单一刻度变为双刻度 3)当接收用户阅读此消息时,该用户将显示的通知发送给发件人。发件人方从双刻度变为蓝色双刻度。请查看smack javadoc

答案 1 :(得分:1)

您必须使用 MessageEventManager 。实例化为

messageEventManager = MessageEventManager.getInstanceFor(connection);

SENDER 侧,将可见/显示的事件发送为

messageEventManager.sendDisplayedNotification(to, messageID);

其中to是向其发送此事件的JID,而messageID是向其发送该事件的消息的ID。

现在在RECEIVER端注册一个列表器,如下所示:

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) {

    }
};