我在aSmack上创建VCard时遇到问题。我可以看到,当我尝试加载它时,我的VCard未保存。使用aSmack和Openfire无法保存VCard
- 当我尝试加载另一个客户端创建一个电子名片,一切完美的作品。
- 当我尝试从Openfire的创建用户加载电子名片,我收到以下错误:
service-unavailable(503) at org.jivesoftware.smackx.packet.VCard.doLoad(VCard.java:568) at org.jivesoftware.smackx.packet.VCard.load(VCard.java:551)
- 当我尝试从我创建了一个用户加载电子名片我客户端,我得到以下错误:
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时,我不会收到错误,但它不会保存它!
有没有人有同样的问题?
您是否尝试过使用aSmack来代替Smack?我认为我的问题可能特定于aSmack – Caroline
我尝试过使用aSmack。它与当前登录的用户正常工作。而当您尝试更换另一个vCard时...它仍会更新当前登录用户的vCard。这是根据文档,正确的行为。这是令人困惑的王者,但它是有道理的,你不能修改比你更别人的电子名片。 –