android - 使用 asmack 无法从 vCard 获得准确的响应

标签 android smack asmack

我正在使用 asmack 检索 vCard图书馆。我能够检索 vCard,但响应并不完全符合我的要求,它只给出响应

<iq id="3842p-8" to="lalit3686.android@gmail.com" type="get">
                                <vCard xmlns='vcard-temp'><FN>Lalit Poptani</FN>

预期的响应是有关用户的完整详细信息/信息,如图所示 here

我试过如下,

VCard vCard = new VCard();
try {
        ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp",
                                                            new VCardProvider());
        vCard.load(conn, user);
        Log.d("Vcard XML", vCard.toXML());
    } catch (XMPPException e) {
        e.printStackTrace();
    }

我也尝试过使用 this answer配置所需的一切。那么,是否需要进一步检索用户 vCard 的完整 xml?

最佳答案

在一个简单的 Java 应用程序(非 Android)中使用常规 Smack 尝试它,您可以在其中打开调试窗口 (-Dsmack.debugEnabled=true),这将为您提供从服务器。这将至少确认节的正确性。如果不是,则说明您有服务器问题。我认为这不太可能,因为格式错误的节通常会导致连接终止,因为客户端无法解析流。

如果它们是正确的,则可能是提供程序本身存在问题。根据文档,Smacks 的 VCard class is incomplete , 因此返回的信息可能根本不在已解析的字段列表中。

知道返回的节会更容易验证这一点。

asmack 派生自 Smack,因此在这种特殊情况下(实际上大多数情况下)它的行为方式应该完全相同。

关于android - 使用 asmack 无法从 vCard 获得准确的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9867023/

相关文章:

java - Openfire 将消息退回给发件人

android - 使用 asmack 设置状态不可用

android - Ejabberd XMPPException$XMPPErrorException : XMPPError: service-unavailable - cancel, 加入MUC

java - Smack 中的多用户聊天邀请

android - 将 aSmack 0.8.3 用于 XMPP 聊天应用程序时出现 NoSuchAlgorithmException

android - asmack 没有收到多用户聊天请求

android - 插入新联系人时自动联系人聚合不起作用

android - 如何修复Unity中的 "Failed to load IL2CPP"错误?

android - 查找来电者 Android 手机信息

android - 如何从编辑文本中获取准确的文本并在android中设置为 TextView