Como analisar um CustomIQ no ASMACK
Estou usando a biblioteca ASMACK para meu aplicativo. Eu recebi o seguinte QI do meu 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 analisar esse QI, adicionei o IQProvider ao definirXmppConnection configuração usandoProviderManager classe como
ProviderManager.getInstance().addIQProvider("bind",
"urn:ietf:params:xml:ns:xmpp-bind",
new CustomIQProvider());
E meuCustomIQProvider classe é
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;
}
}
E meuCustomIQ classe é
public class CustomIQ extends IQ {
@Override
public String getChildElementXML() {
// TODO Auto-generated method stub
return null;
}
}
Agora estou confuso sobre comoCustomIQProvider
classe ser executada .. Eu não recebi nenhum log deCustomIQProvider
classe. Se minhas etapas estão corretas, caso contrário, preciso executar as etapas para chamar minhaCustomIQProvider
classe