asmack - 无法读取VCard

时间:2012-02-01 02:26:44

标签: java android smack vcard asmack

我完全按照建议(Asmack not loading VCard)做了,但它仍然不起作用。 DEBUG输出显示Smack接收带有VCard信息的数据包,但随后在https://github.com/rtreffer/smack/blob/master/source/org/jivesoftware/smackx/packet/VCard.java#L548中抛出ClassCastException,我得到的是'没有VCard for xxx @ xxx'。

我的代码:

public VCard getUserVCard() throws XMPPException {
    VCard userVCard = new VCard();
    userVCard.load(connection);
    return userVCard;
}

以前的一些初始化:

ConnectionConfiguration config = new ConnectionConfiguration(OF_HOST, OF_PORT, OF_SERVICE_NAME);
config.setDebuggerEnabled(true);
    config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
ProviderManager.getInstance().addIQProvider("vCard ", "vcard-temp", new org.jivesoftware.smackx.provider.VCardProvider());
connection = new XMPPConnection(config);
this.context = context;
try {
    connection.connect();
} catch (XMPPException e) {
    // TODO Auto-generated catch block
        e.printStackTrace();
}

数据库中的VCard信息没问题 - 只有最终的投射失败。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我最终决定不仅要添加VCardProvider,而且还要在此帖getSearchForm returns null when using UserSearch in XMPP with aSmack之后的配置中添加整个九码并且它有效。