2017-04-19 59 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(); 
    }