Asmack lädt keine VCard
Frage
Ich verwende eine binäre Version von Asmack (ich werde sie erstellen, sobald ich etwas Zeit habe, da ich beim ersten Versuch Probleme hatte).Ich habe auch meinen eigenen Ejabberd-Server eingerichtet.
Wenn ich versuche, eine Kontakt-VCard zu laden, gibt der Server die Informationen zurück, aber Asmack scheint sie nicht zu mögen (oder sie nicht zu analysieren).
Folgendes kann ich im Debug-Modus sehen:
<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>
Aber wenn ich es tue
VCard card = new VCard();
card.load(xmppConn, "user@domain");
Alle Informationen sind auf null gesetzt, und wenn ich versuche, das XML durch Aufrufen der VCard.toXML () -Methode zu betrachten, habe ich gerade ein leeres XML wie dieses erhalten
<iq id="I17sI-4" to="user@domain" type="get"><vCard xmlns='vcard-temp'/></iq>
Also weiß jemand, was ich falsch mache oder ob diese Binärversion die vom Server empfangene VCard nicht analysiert?
Lösung
Zeile hinzufügen: ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp", new VCardProvider());
vor dem Laden der vCard.