asmack - 无法读取 VCard

发布于 2025-01-02 01:47:00 字数 1263 浏览 2 评论 0原文

我完全按照答案的建议进行了操作( Asmack 未加载 VCard ),但它仍然不起作用。 DEBUG 输出显示 Smack 收到带有 VCard 信息的数据包,但随后在 https://github.com/rtreffer/smack/blob/master/source/org/jivesoftware/smackx/packet/VCard.java#L548 我得到的只是“xxx@xxx 没有 VCard” '。

我的代码:

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 信息正常 - 只有最终的转换失败。有什么建议吗?

I did exactly what the answer suggested ( Asmack not loading VCard ) but it still doesn't work. The DEBUG output shows that Smack receives the packet with the VCard information but then throws a ClassCastException in https://github.com/rtreffer/smack/blob/master/source/org/jivesoftware/smackx/packet/VCard.java#L548 and all I get is 'No VCard for xxx@xxx'.

My code:

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

And some previous initialization:

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();
}

The VCard information in the database is OK - only the final casting fails. Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七分※倦醒 2025-01-09 01:47:00

我最终决定不仅添加 VCardProvider,而且在这篇文章之后的配置中添加整个九码 在 XMPP 中使用 aSmack 中的 UserSearch 时,getSearchForm 返回 null 并且它有效。

I finally decided not only to add the VCardProvider but the whole nine yards in the configuration following this post getSearchForm returns null when using UserSearch in XMPP with aSmack and it worked.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文