1

使用 Smack,我如何使用 Smake 从 JID 获取昵称/用户名。

请注意,JID 不在我的烘焙机中。

谢谢。

4

3 回答 3

1

可能为时已晚,但对于面临此问题的其他人来说来自 smack:4.2.0

您可以使用 JID 分别获取所有部分。

如果你有像 abcd@xyzPc- 599 这样的 JID

String local = XmppStringUtils.parseLocalpart(userObject.getUserId().toString());

Log.d(TAG, local); // print abcd

String domain = XmppStringUtils.parseDomain(userObject.getUserId().toString());

Log.d(TAG, domain); // print xyzPc-599

您可以检查XmppStringUtils的代码。

希望对某人有所帮助...

于 2016-11-28T15:32:07.283 回答
0

使用 Smack 的 String Utils 解析 JID 的名称部分

Smack Docs 字符串实用程序

String name = StringUtils.parseName(JID);

当您说它不在您的名册中时,您是如何通过 JID 的?你是从你的消息中得到它吗?

于 2013-08-07T00:12:50.433 回答
0

我们可以使用 JID 获取昵称,但我们必须在 VCARD 中添加所有用户

String nickname = smackHelper.getNickname(from);


public String getNickname(String jid) throws SmackInvocationException {
    VCard vCard = vCardHelper.loadVCard(jid);

    return vCard.getNickName();
}


public VCard loadVCard(String jid) throws SmackInvocationException {
    VCard vCard = new VCard();
    try {
        vCard.load(con, jid);

        return vCard;
    } catch (Exception e) {
        throw new SmackInvocationException(e);
    }
}
于 2018-01-30T09:53:09.950 回答