【问题标题】:How do I get the message from the message id in smack.如何从 smack 中的消息 ID 获取消息。
【发布时间】:2017-04-19 09:36:46
【问题描述】:

我正在尝试使用以下函数获取聊天记录:

    var mamManager:MamManager= MamManager.getInstanceFor(connection)
    var prevMsg=mamManager.queryArchive(JidCreate.entityBareFrom(jid)).forwardedMessages

        println(msg.forwardedStanza)

但我得到的输出是

04-19 14:17:58.414 7964-7964/com.example.itstym.smackchat I/System.out: Message Stanza [to=user2@replica3377.cloudapp.net,from=user1@replica3377.cloudapp.net/307135084148417199024926,id=qQ73x-27,]

我也可以使用 msg.forwardedStanza.stanzaId 获取节 id,但我将如何获取 msg 文本。

【问题讨论】:

    标签: android message kotlin smack packet


    【解决方案1】:

    将转发的 Stanza 转换为 Message 并调用 getBody()。

    【讨论】:

    【解决方案2】:

    getBody() 用于 Message,ForwardedStanza 扩展了 Stanza,因此它可以是 Message、IQ 或 Presence。

    试试这个:

        if (forwarded.getForwardedStanza() instanceof Message) {
            String body = ((Message) forwarded.getForwardedStanza()).getBody();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 2021-12-13
      • 2022-07-22
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多