1

私は 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");

すべての情報が null に設定されており、VCard.toXML() メソッドを呼び出して XML を見ようとすると、このような空の XML が得られました。

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

だから、私が間違っていること、またはサーバーから受信した VCard の解析に失敗したこのバイナリ リリースを知っている人はいますか?

4

1 に答える 1

4

次の行を追加: ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp", new VCardProvider());vCard をロードする前に。

于 2011-12-03T15:58:58.020 に答える