【发布时间】:2014-03-15 15:24:10
【问题描述】:
我在 aSmack 上创建 VCard 时遇到问题。当我尝试加载时,我可以看到我的 VCard 尚未保存。
- 当我尝试加载由另一个客户端创建的 VCard 时,一切正常。
- 当我尝试从在 Openfire 上创建的用户加载 VCard 时,我收到以下错误:
service-unavailable(503)
at org.jivesoftware.smackx.packet.VCard.doLoad(VCard.java:568)
at org.jivesoftware.smackx.packet.VCard.load(VCard.java:551)
- 当我尝试从使用客户端创建的用户加载 VCard 时,出现以下错误:
remote-server-not-found(404)
at org.jivesoftware.smackx.packet.VCard.doLoad(VCard.java:568)
at org.jivesoftware.smackx.packet.VCard.load(VCard.java:551)
要从我的客户端创建 VCard,首先我登录然后使用以下代码:
VCard userCard = new VCard();
userCard.setField("customField", "yes");
try {
userCard.save(mConnection);
Log.i(TAG,"usercard saved "+userCard.toXML()); /* it is displayed! */
} catch (XMPPException e) {
Log.e(TAG,"An error occured while sending Vcard"+userCard.toXML(),e);
}
在连接mConnection之前,我添加了ProviderManager.getInstance().addIQProvider("vCard","vcard-temp", new VCardProvider());这一行
根据这篇文章 (http://community.igniterealtime.org/thread/34689),如果我们使用 LDAP,则无法修改 VCard。但是当我尝试保存 VCard 时,我没有收到错误,它只是没有保存它!
有人遇到同样的问题吗?
【问题讨论】:
标签: java openfire smack asmack vcf-vcard