如何从smack中的消息ID中获取消息。

时间:2017-04-19 09:36:46

标签: android message kotlin smack packet

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

    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文本。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

试试这个:

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