asmack - не могу прочитать VCard - PullRequest
1 голос
/ 01 февраля 2012

Я сделал именно то, что предложил ответ ( Asmack не загружает VCard ), но он все еще не работает.Вывод DEBUG показывает, что Smack получает пакет с информацией о VCard, но затем выдает исключение ClassCastException в https://github.com/rtreffer/smack/blob/master/source/org/jivesoftware/smackx/packet/VCard.java#L548, и все, что я получаю, это «Нет VCard для 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 голосов
/ 16 февраля 2012

Я наконец решил не только добавить VCardProvider, но и целых девять ярдов в конфигурации после этого поста. getSearchForm возвращает ноль при использовании UserSearch в XMPP с aSmack , и это сработало.

...