我试图用我的Beem-asmack将Simple NickName设置为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卡没有得到更新。我之前没见过Vcard IQ,但这里的回复看起来很空白,我还有什么别的吗?有什么帮助吗?
答案 0 :(得分:0)
您没有加载该卡。 试试这个:
VCard vCard = new VCard();
card.load(connection);
card.setNickName("NewNickname");
try {
card.save(connection);
} catch (XMPPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}