Asmack не загружается VCard - PullRequest
       33

Asmack не загружается VCard

1 голос
/ 02 декабря 2011

Я использую бинарный выпуск Asmack (я буду его собирать, как только у меня будет время, когда у меня возникли проблемы при первой попытке). Я также настроил свой собственный сервер ejabberd.

Когда я пытаюсь загрузить какой-либо контакт VCard, сервер возвращает информацию, но Asmack, похоже, не нравится (или не может ее проанализировать).

Вот что я вижу в режиме отладки:

<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>

Но когда я делаю

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

Вся информация установлена ​​в нуль, и когда я пытаюсь посмотреть на XML, вызвав метод VCard.toXML (), я просто получил пустой XML, подобный этому

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

Значит, кто-нибудь знает, что я делаю неправильно или этот двоичный выпуск не может обработать VCard, полученный от сервера?

1 Ответ

4 голосов
/ 03 декабря 2011

Добавить строку: ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp", new VCardProvider()); перед загрузкой vCard.

...