gpt4 book ai didi

android - smack 消息发送状态

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:45 25 4
gpt4 key购买 nike

我正在使用 smack 和 openfire 在 android 中创建聊天应用程序。对于消息状态,我在其他地方发送和显示的消息没有问题客户(仔细检查)。我将向发件人发送一条简单的 json 消息,如下所示: {“交付”: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());

关于android - smack 消息发送状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44213180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com