Я сделал именно то, что предложил ответ ( 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 в базе данных в порядке - только окончательное приведение не выполняется.Есть предложения?