如何在Smack中实现消息确认

4
我已经在我的安卓应用程序中成功地实现了一对一聊天。现在我想知道我的消息是否已经被发送。我搜索了一下,但是无法找到任何解决方法。
提前致谢。
1个回答

3
你可以尝试在Smack中使用ReceiptReceiveListener。
public class YourFragment extends Fragment implements ReceiptReceivedListener {

    @Override
    public void onReceiptReceived(String fromJid, String toJid, String receiptId, Stanza receipt) {
        if(isAdded()){
            // Check if the receiptId equals to the receipt you have sent.
        }
    }
}

我已经尝试过了。我在发送的消息中添加了消息包ID并接收到了它,但是不知道该如何处理这个ID? - begginer
在我的代码中,id用于检查哪个消息应该被标记为“已接收”。假设您的聊天视图上有100条消息,并且应用程序为每条消息接收到100个收据,那么您需要知道一旦收到一个收据,应该将哪个消息标记为“已接收”。而receiptId就是为了这个目的。 - Rui Geng
抱歉,我有点困惑。在我的列表视图中,没有唯一的字段/ID与特定消息一起。请告诉我如何生成动态ID,以便在收到确认时将特定消息标记为已发送? - begginer
1
@初学者 我建议你检查一下服务器是否有任何问题。如果JID是正确的,可能是你的服务器出了点问题。 - Rui Geng
@RuiGeng,通过StreamManagement也可以实现吗?我能够获得服务器的确认,但找不到任何接收来自终端客户端确认的方法,谢谢。 - Sarthak Mittal
显示剩余11条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接