使用 Smack,我如何使用 Smake 从 JID 获取昵称/用户名。
请注意,JID 不在我的烘焙机中。
谢谢。
可能为时已晚,但对于面临此问题的其他人来说来自 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的代码。
希望对某人有所帮助...
使用 Smack 的 String Utils 解析 JID 的名称部分
String name = StringUtils.parseName(JID);
当您说它不在您的名册中时,您是如何通过 JID 的?你是从你的消息中得到它吗?
我们可以使用 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);
}
}