У меня возникла проблема с созданием VCard на aSmack. Я вижу, что моя VCard не была сохранена, когда я пытаюсь ее загрузить.Не удается сохранить VCard с помощью aSmack и Openfire
- Когда я пытаюсь загрузить VCard, созданную другим клиентом, все работает отлично.
- Когда я пытаюсь загрузить 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)
- Когда я пытаюсь загрузить 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), это не представляется возможным изменить VCard если мы используем LDAP. Но я не получаю ошибок, когда пытаюсь сохранить VCard, это просто не спасает!
У кого-то есть такая же проблема?
Вы пытались сделать то же самое с помощью aSmack вместо Smack? Я думаю, что моя проблема может быть специфичной для aSmack – Caroline
Я пробовал с aSmack. Он отлично работает с текущим пользователем. И когда вы пытаетесь изменить другую vCard ... она по-прежнему обновляет vCard текущего зарегистрированного пользователя. Что соответствует документам, правильное поведение. Это король путаницы, но имеет смысл, что вы не можете изменить vCard кого-то другого, кроме вас. –