如何从 smack 中的消息 ID 获取消息。
Posted
技术标签:
【中文标题】如何从 smack 中的消息 ID 获取消息。【英文标题】:How do I get the message from the message id in smack. 【发布时间】: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 文本。
【问题讨论】:
【参考方案1】:将转发的 Stanza 转换为 Message 并调用 getBody()。
【讨论】:
你能看看这个问题***.com/questions/43541753/…【参考方案2】:getBody() 用于 Message,ForwardedStanza 扩展了 Stanza,因此它可以是 Message、IQ 或 Presence。
试试这个:
if (forwarded.getForwardedStanza() instanceof Message)
String body = ((Message) forwarded.getForwardedStanza()).getBody();
【讨论】:
以上是关于如何从 smack 中的消息 ID 获取消息。的主要内容,如果未能解决你的问题,请参考以下文章
使用 smack 从消息存档 openfire 中获取最新对话