其他分享
首页 > 其他分享> > Android-Asmack无法加载VCard

Android-Asmack无法加载VCard

作者:互联网

我正在使用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?

解决方法:

添加行:ProviderManager.getInstance().addIQProvider(“ vCard”,“ vcard-temp”,new VCardProvider());加载vCard之前.

标签:asmack,vcard,android
来源: https://codeday.me/bug/20191012/1901950.html