I am develloping call signals using Smack 4. I want to send an IQ-result which have the format below using Smack 4 and Java:
<iq from="sister@realworld.lit/home"
id="v73hwcx9"
to="alice@wonderland.lit/rabbithole"
type="result"/>
This is what I did and did not work
public class AcknowledgeIQ extends IQ {
public AcknowledgeIQ() {
super("");
setType(Type.result);
}
@Override
public IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) {
return null;
}
public String toXml(){
return super.toXML(null).toString();
}
}
I have tested below code on the SMACK 4.3.4.
public class AcknowledgeIQ extends org.jivesoftware.smack.packet.IQ {
public AcknowledgeIQ() {
super(null, null);
}
@Override
public IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) {
xml.rightAngleBracket();
return xml;
}
}
Usage example :
AcknowledgeIQ ackIQ = new AcknowledgeIQ();
ackIQ.setType(org.jivesoftware.smack.packet.IQ.Type.result);
Log.d(TAG, "AcknowledgeIQ = "+ackIQ.toXML(null).toString());
Logcat output :
AcknowledgeIQ = <iq xmlns='jabber:client' to='alice@wonderland.lit/rabbithole' id='MGr5o-5' type='result'></iq>