Pregunta

Estoy usando una versión binaria de Asmack (la construiré tan pronto como tenga algo de tiempo, ya que tuve problemas la primera vez que lo intenté).También configuré mi propio servidor ejabberd.

Cuando intento cargar alguna VCard de contacto, el servidor devuelve la información, pero a Asmack no parece gustarle (o no puede analizarla).

Esto es lo que puedo ver en el modo de depuración:

<iq from='user@domain' to='admin@domain/Smack' id='I17sI-4' type='result'>
<vCard xmlns='vcard-temp' prodid='-//HandGen//NONSGML vGen v1.0//EN' version='2.0'>
    <FN>Full Name</FN>
    <N>
        <FAMILY>Surname</FAMILY>
        <GIVEN>Nick</GIVEN>
    </N>
    <NICKNAME>Nickname</NICKNAME>
    <URL>http://google.com</URL>
    <ADR>
        <LOCALITY>lanta</LOCALITY>
        <REGION>krabi</REGION>
        <PCODE>81150</PCODE>
        <CTRY>thailand</CTRY>
    </ADR>
    <EMAIL>
        <USERID>user@domain.com</USERID>
    </EMAIL>
</vCard>
</iq>

Pero cuando lo hago

VCard card = new VCard();
card.load(xmppConn, "user@domain");

Toda la información está configurada como nula, y cuando trato de mirar el XML llamando al método VCard.toXML (), obtengo un XML vacío como este

<iq id="I17sI-4" to="user@domain" type="get"><vCard xmlns='vcard-temp'/></iq>

Entonces, ¿alguien sabe qué estoy haciendo mal o si esta versión binaria no puede analizar la VCard recibida del servidor?

¿Fue útil?

Solución

Agregue la línea: ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp", new VCardProvider()); antes de cargar vCard.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top