2017-04-19 6 views
1

나는 아래와 같은 기능을 사용하여 채팅 기록을 가져 오기 위해 노력하고 있어요 :메시지 ID에서 메시지를 어떻게 얻을 수 있습니까?

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

     println(msg.forwardedStanza) 

그러나 나는 또한 msg.forwardedStanza.stanzaId를 사용하여 연 ID를 얻을 수 있습니다

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 텍스트를 얻는다.

답변

0

전달 된 스탠자를 Message로 캐스팅하고 getBody()를 호출하십시오.

+0

이봐, 당신이이 질문을 볼 수 http://stackoverflow.com/questions/43541753/not-able-to-receive-group-message-using-smack?noredirect=1 # comment74135452_43541753 –

0

getBody()는 Message를위한 것이고 ForwardedStanza는 Message, IQ 또는 Presence가 될 수 있도록 스탠자를 확장합니다.

이 시도 :

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