Не удается установить визитную карточку в aSmack

#android #xmpp #asmack

#Android #xmpp #asmack

Вопрос:

я пытаюсь установить простой псевдоним с моим Beem-asmack на сервер openfire следующим образом :

  connection.login(USERNAME, PASSWORD);
            ProviderManager.getInstance().addIQProvider("vCard",   
 "vcard-temp", new org.jivesoftware.smackx.provider.VCardProvider());
            VCard card = new VCard();

            card.setNickName("NewNickname");
            try {
                card.save(connection);
            } catch (XMPPException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
  

пакеты IQ выглядят так :

 06-29 14:06:28.560: D/SMACK(2691): 02:06:28 PM SENT (-1274092112): <iq id="RJyL4-4"   
from="reza@reza-hp/Smack" type="set"><vCard xmlns='vcard-temp'> 
<NICKNAME>NewNickname</NICKNAME>
06-29 14:06:28.560: D/SMACK(2691): </vCard>
06-29 14:06:28.560: D/SMACK(2691): </iq>
  

и ответ:

  06-29 14:06:28.570: D/SMACK(2691): 02:06:28 PM RCV  (-1274092112): <iq type="result"  
 id="RJyL4-4" to="reza@reza-hp/Smack"/>
  

Но моя V-карта не обновляется. я раньше не видел IQ визитной карточки, но ответ здесь выглядит пустым, есть ли что-то еще, что я должен сделать? любая помощь, пожалуйста?

Ответ №1:

Вы не загрузили карту. Попробуйте это:

 VCard vCard = new VCard();
card.load(connection);
card.setNickName("NewNickname");
try {
    card.save(connection);
} catch (XMPPException e) {
  // TODO Auto-generated catch block
 e.printStackTrace();
}