Cómo analizar un CustomIQ en ASMACK
Estoy usando la biblioteca ASMACK para mi aplicación. Recibí el siguiente IQ de mi servidor.
<iq id='bind_2' type='result'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid username='xx' fullname='yy'>[email protected]/Resource</jid></bind></iq>
Para analizar este IQ, agregué el IQProvider al configurarXmppConnection configuración mediante el usoProviderManager clase como
ProviderManager.getInstance().addIQProvider("bind",
"urn:ietf:params:xml:ns:xmpp-bind",
new CustomIQProvider());
Y miCustomIQProvider la clase es
public class CustomIQProvider implements IQProvider {
public static final String NAME_SPACE = "urn:ietf:params:xml:ns:xmpp-bind";
@Override
public IQ parseIQ(XmlPullParser parser) throws Exception {
Log.i("My_TAG", "inside LivBindIQ");
CustomIQ bindIQ = new CustomIQ();
if (parser.getEventType() != XmlPullParser.START_TAG) {
throw new IllegalStateException(
"Parser not in proper position, or bad XML.");
}
boolean done = false;
while (!done) {
int eventType = parser.next();
if ((eventType == XmlPullParser.START_TAG)
&& ("entry".equals(parser.getName()))) {
eventType = parser.next();
String name = parser.nextText();
eventType = parser.next();
String value = parser.nextText();
}
else if (eventType == XmlPullParser.END_TAG) {
done = true;
}
}
return bindIQ;
}
}
Y miCustomIQ clase es,
public class CustomIQ extends IQ {
@Override
public String getChildElementXML() {
// TODO Auto-generated method stub
return null;
}
}
Ahora estoy confundido acerca de cómoCustomIQProvider
se ejecute la clase .. No obtuve ningún registro deCustomIQProvider
clase. Si mis pasos son correctos, de lo contrario, tengo que hacer cualquier paso para llamar a miCustomIQProvider
clase