我在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。這是根據文檔,正確的行爲。這是令人困惑的王者,但它是有道理的,你不能修改比你更別人的電子名片。 –