2017-04-19 58 views
1

我想用下面的功能来获取聊天记录:如何从消息ID中获取消息。

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 [[email protected],[email protected]/307135084148417199024926,id=qQ73x-27,] 

我也可以用msg.forwardedStanza.stanzaId获得节ID,但如何将我收到消息文本。

回答

0

将转发的Stanza投射到消息并调用getBody()。

+0

嘿,你可以看看这个问题http://stackoverflow.com/questions/43541753/not-able-to-receive-group-message-using-smack?noredirect=1 #comment74135452_43541753 –

0

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

试试这个:

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