微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – smack消息发送状态

我正在使用smack和openfire在android中创建聊天应用程序.
对于消息状态我在其他情况下传送和显示消息没有问题
客户(仔细检查).
我将向发件人发送一条简单的json消息,如bellow:
 { “交付”:timestapmp}
 并解析它并仔细检查低于之前发送的时间戳的消息.
问题是关于发送状态(一次检查).
当我发送消息时,服务器没有响应消息发送的任何内容.
是否有可能在smack中发送带有来自服务器回调的消息.
如果可能的话,是否可以在回调响应中发送时间服务器.
谢谢 .

解决方法:

private void ackNowledgementFromServer(final Message message) throws StreamManagementException.StreamManagementNotEnabledException {
        if (connection != null && connection.isSmEnabled()) {
            connection.addStanzaIdAckNowledgedListener(message.getStanzaId(), new StanzaListener() {
                @Override
                public void processstanza(Stanza packet) throws SmackException.NotConnectedException, InterruptedException {

                        MessageAsyncTask task = new MessageAsyncTask(packet.getStanzaId(), MSG_STATUS_SENT);
                        task.execute();

                }
            });
        }

嘿,你可以这样做..每次你通过在上面的方法中传递该消息作为参数发送消息时调用方法

注意:应启用流管理以使其正常工作,可以如下所示:

DeliveryReceiptManager.setDefaultAutoReceiptMode(DeliveryReceiptManager.AutoReceiptMode.always);
        ProviderManager.addExtensionProvider(DeliveryReceipt.ELEMENT, DeliveryReceipt.NAMESPACE, new DeliveryReceipt.Provider());
        ProviderManager.addExtensionProvider(DeliveryReceiptRequest.ELEMENT, DeliveryReceipt.NAMESPACE, new DeliveryReceiptRequest.Provider());

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐